
No.2ベストアンサー
- 回答日時:
>cl dll.c /LD
リンク間違えている…というワケではないみたいですね。
https://msdn.microsoft.com/ja-jp/library/cc42909 …
より、
>DllMain は、ライブラリ定義の関数名です。以前のバージョンの SDK のドキュメントは、エントリポイント関数名を DllEntryPoint と記述していました。開発者が独自の DLL を構築する場合は、実際に使う名前を指定しなければなりません。詳細については、開発ツールのドキュメントを参照してください。
ということで、VC系ではDllEntryPoint()ではなくDllMain()である必要があるようです。
リンクされるスタートアップ処理からコールされるのがVCだとDllMain()だけでDllEntryPoint()はコールしてくれないのでしょう。
Borland C++は少々古いはずなので、DllEntryPoint()でコールするようにライブラリが作られている…。ってところでしょうかね。
https://msdn.microsoft.com/ja-jp/library/f9t8842 …
でリンカにエントリポイントの関数名を指定するか…
DllEntryPoint()をコールするだけのDllMain()を追加するか…でしょうかね。
No.1
- 回答日時:
返答ありがとうございます
コンパイル方法:
cl dll.c /LD
cl main.CPP
<dll.c>の抜粋:
#define EXPORT __declspec(dllexport)
EXPORT int TestFunc( int a, int b ) {
return( a + b );
}
BOOL DllEntryPoint(HINSTANCE hInstance, DWORD fdwReason, LPVOID *lpvReserved){
{
switch (fdwReason){
case DLL_PROCESS_ATTACH:
Beep( 440, 200 ); // ド
printf("DLL_PROCESS_ATTACH\n");
break;
case DLL_PROCESS_DETACH:
Beep( 440, 200 ); // ド
printf("DLL_PROCESS_DETACH\n");
break;
case DLL_THREAD_ATTACH:
Beep( 440, 200 ); // ド
printf("DLL_THREAD_ATTACH\n");
break;
case DLL_THREAD_DETACH:
Beep( 440, 200 ); // ド
printf("DLL_THREAD_DETACH\n");
break;
}
return TRUE;
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ILSpyで、デコンパイルできない。
-
エクセルVBAではRound...
-
相互に参照する構造体について
-
OpenCVを Borland C++ Builder...
-
C言語をコンパイル後の膨大なフ...
-
C言語でMIDIを鳴らしたいです。
-
DirectX9SDKが入ってるPCでDi...
-
VBAを何回も作り直して、容量が...
-
外部シンボル "_main"は未解決です
-
漢字のコメントをはずすとコン...
-
windowsでLinuxで作成したソー...
-
戻り値について
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
Arduinoに関する質問
-
リリースモードとデバッグモー...
-
C++でデスクトップGUIアプリ開...
-
組込みC開発
-
c言語です コンパイルした時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
エクセルVBAではRound...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
C言語でヘッダファイルにグロー...
-
ILSpyで、デコンパイルできない。
-
<math.h>があるのにsqrtが・...
-
外部シンボル "_main"は未解決です
-
マクロ コンパイルがグレーバック
-
セミコロンについて
-
コンパイルエラー:ユーザ定義...
-
【VC++6.0(MFC)】警告「LINK : ...
-
1 つ以上の複数回定義されてい...
-
VB6とInputManソフトの関係
-
C言語でmからnまでの合計を求め...
-
ExcelVBAで『ByRef 引数の型が...
-
コンパイルに失敗しました、と...
-
漢字のコメントをはずすとコン...
-
C言語のコンパイルができません
おすすめ情報