2017-11-06 5 views
0

VC++ Win32コンソールアプリケーションを作成してDLLをチェックしましたが、「変数をエクスポートする」も忘れました。後で私はそこにあるクラス、変数などが呼び出すアプリケーション([DllImport ...]を使っていた)にエクスポートされなかったことに気づいた。Visual Studio(2012)DLLを変更してクラスと変数をエクスポートする

確かに、私は新しいDLLを作成して "エクスポート"オプションを作成することができますが、後でそれを行う方法もありますか?

答えて

0

はい、後で変更することもできます。ちょうどあなたが物をエクスポートし、プロジェクトファイルを比較する新しいDLLプロジェクトを作成してください。また、プロジェクトセットアップのUIで作業を調整することもできますが、それは難しいかもしれません。

1

エクスポートされた名前はすべて__declspec(dllexport)です。

「エクスポート」チェックボックスは、単にのような他のものの間で、定義されて余分な.hファイル生成:また

MYPROJECT_API void MyExportedFunction(); 

することができます:あなたのコード内で後で書くことができるようにするため

#ifdef MYPROJECT_EXPORTS 
#define MYPROJECT_API __declspec(dllexport) 
#else 
#define MYPROJECT_API __declspec(dllimport) 
#endif 

をこの宣言をDLLおよびDLLを使用するクライアントコードで再利用します(MYPROJECT_EXPORTSは「エクスポート」チェックボックスに関係なく自動的に定義されます)。

後でMYPROJECT_APIを生成することはできませんが、手作業で簡単に作成できます。また、エクスポートされた関数__declspec(dllexport)を他の方法で宣言することもできます。

関連する問題