こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

猫でもわかるプログラミング161章

http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm

にDLLを使ったメッセージフックについて説明があるのですが、どうもその通りにやってもうまくいきません。

まず、
1.dll作成する際にlibが生成されない。
2.ヘッダファイルに
#define EXPORT extern "C" __declspec(dllexport)
を付け加え、
EXPORT LRESULT CALLBACK ....
という風にEXPORTをつけてビルドすると、libファイルが生成されるものの、それをメインプログラムのプロジェクトに追加しても

リンク中...
hookmain.obj : error LNK2001: 外部シンボル ""int __cdecl ResetHook(void)" (?ResetHook@@YAHXZ)" は未解決です
hookmain.obj : error LNK2001: 外部シンボル ""int __cdecl SetHook(void)" (?SetHook@@YAHXZ)" は未解決です
Debug/hook.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー

というエラーが起きます。
このエラーが何を意味しているかもわからず、dllについても勉強中なのでどこを直せばいいかがみえてきません。どなたかわかる方がいらしたらよろしくお願いします

VC++ 6.0 WinXP

投稿日時 - 2004-02-26 13:46:14

QNo.790372

暇なときに回答ください

質問者が選んだベストアンサー

>1.dll作成する際にlibが生成されない。

hookdll.defファイルを作成し、プロジェクトに追加してください。
内容は、arcsinさんが書かれたurlの下のほうです。

>2.ヘッダファイルに
>#define EXPORT extern "C" __declspec(dllexport)
を付け加え、

defファイルを使用した場合は不要です。
というか、extern "C"を理解されてますか?

投稿日時 - 2004-02-26 13:57:49

お礼

いえ、理解はしていません。。。
「猫でもわかるプログラミング」ではオマジナイとして、と書いてあったのでまだなんのことやらわかってません^^;
でもとりあえず出来ました。ありがとうございます。
>#define EXPORT extern "C" __declspec(dllexport)
は自分で調べなおしてみます

投稿日時 - 2004-02-26 16:11:54

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問