VS2010 のVC++ プロジェクトでoncrpc-windowsプロジェクトを使用しようとしています。oncrpcは引数なしでsvc.hファイルの関数をエクスポートしますが、実際には関数には引数があります。たとえば、ヘッダー ファイルのエクスポート
#define DllExport __declspec( dllexport )
...
DllExport SVCXPRT *svcudp_create();
しかし、実装ファイルには
SVCXPRT * svcudp_create(sock)
int sock;
{
return(svcudp_bufcreate(sock, UDPMSGSIZE, UDPMSGSIZE));
}
エクスポートされた関数を使用する C ファイルを作成しようとすると、すべて問題なく、コードは正常にコンパイルされます。問題は、CPP コードでエクスポートされた関数を使用できないことです。コンパイラは次のメッセージで停止します。
エラー C2660: 'svcudp_create': 関数は引数を 1 つ取りません
を使用しようとしましextern "C"
たが、役に立ちませんでした。VC++ プロジェクトでエクスポートされた関数を使用するにはどうすればよいですか? 正しい署名で独自のヘッダー ファイルを作成する必要は本当にありますか?