0

DLL ファイルと LIB ファイル、およびヘッダー ファイルに付属する API を使用する C++ プロジェクトがあります。win32 フォーム プロジェクトを作成したいと考えています。

私の質問は、プロジェクトを dll および lib ファイルにリンクする方法です。

しかし、主な質問は、どうすればイベントをサブスクライブできるかということです。API では、関数を呼び出すことができます。関数はイベント応答として返されます。MFC プロジェクトでは通常、メッセージ ループでサブスクライブします。しかし、Win32 ではメッセージ ループはありません。

たぶん私自身が状況を複雑にしているので、想像以上に簡単です。この状況を明確にしてください。

ありがとうございました。

4

2 に答える 2

2

It's always hard to answer when someone asks more than one question... In the case of your "main question", please show the relevant API call for subscribing to events. You are wrong about there being no message loop in Win32... It's just that there's no MFC message loop.

I'm answering the easy question for now... "how do you link the DLL". I am kinda assuming you are using Visual Studio. Is that correct? The way I do this, when I'm in a hurry is like so:

#include "mylib.h"
#pragma comment(lib, "mylib.lib")

That's all there is to it. Of course I want the header, but while I'm at it I tell the compiler to link the library too.

I seem to recall other times where I simply dragged the library file into the project's solution view, effectively adding it as a source. That also works.

The long way is to edit your project settings, go to the Linker section, and under the Input subsection, you add your library to the Additional Dependencies list. You need to do that for all configurations. There are ways to maintain this properly but I won't go into it here.

If you are not using Visual Studio, please disregard my answer.

于 2012-10-26T04:46:45.783 に答える
1

プロジェクトを dll ファイルとリンクすることはできません。プロジェクトを lib ファイルとリンクすることはできます。プロジェクト設定ダイアログ (リンカー) で lib ファイル名を追加することはできます。

または、これをコードに追加します

#pragma comment(lib,"xxxx.lib")

DLL ファイルは実行時にロードされます。

メッセージ ループについては、 http://msdn.microsoft.com/en-us/library/windows/desktop/ms644928( v=vs.85 ).aspx を参照してください。

またはこれ: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644996(v=vs.85).aspx#modeless_box

于 2012-10-26T04:48:29.377 に答える