3

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++ プロジェクトでエクスポートされた関数を使用するにはどうすればよいですか? 正しい署名で独自のヘッダー ファイルを作成する必要は本当にありますか?

4

1 に答える 1