2016-05-20 5 views
0

dllファイルを生成しようとしていますが、別のプログラムで.libファイルを使用していますが、残念ながら.libファイルは生成されません。 どうすればいいですか?Visual StudioでDLLを生成する

extern "C" _declspec (dllexport) int add(int a, int b); 

extern "C" _declspec (dllexport) int add(int a, int b) 
{ 
    return a + b; 
} 
+0

これは私が得るエラーです: リンケージ仕様は以前の "add"(1行目で宣言されています)と互換性がありません – pooya

+0

ツアー[URL](http://stackoverflow.com) /助けてください)あなたが助けを必要とする場合 –

+0

.libを取得しない場合、最も可能性のある事故は何かをエクスポートすることを忘れているということです。 __declspec(dllexport)または.defファイルを使用します。 –

答えて

0

はこのようにそれを試してみてください。クライアント側では__declspec(dllimport)を使用する必要があります。

方が良い、このようなヘッダに宣言を置く:

// YourHeader.H 
#ifdef _DLL_EXPORTING // Define this symbol in DLL project setting 
#define EXPORT_IMPORT __declspec(dllexport) 
#else 
#define EXPORT_IMPORT __declspec(dllimport) 
#endif 

EXPORT_IMPORT int add(int,int); 

は、クライアントがおよそdeclspec指定子を気にせずに、直接このヘッダーを使用してみましょう。 EXPORT_IMPORTマクロは、エクスポート/インポートする他の機能をエクスポートするためにも使用できます。

+0

ありがとうございますが、実際には.libファイルが必要ですが、生成されません! – pooya

+0

あなたの質問を編集して、もっと明瞭にしたいものを作る –

0

あなたはDLLからシンボルをエクスポートするdllexport属性で__declspec(2つのアンダースコア)を使用する必要があります:

関連する問題