我有一個C++項目,它使用DLL和LIB文件附帶的API以及頭文件。 我想創建一個win32表單項目。C++ API DLL項目
我的問題是如何鏈接項目與dll和lib文件。
但主要問題是,我如何訂閱活動? 在API中,我可以調用函數,該函數返回的是事件響應,在MFC項目中我通常會在消息循環中進行訂閱。但是在Win32中沒有消息循環。
也許我自己使情況複雜化,比我想象的要容易。 請爲我澄清這種情況。
謝謝。
我有一個C++項目,它使用DLL和LIB文件附帶的API以及頭文件。 我想創建一個win32表單項目。C++ API DLL項目
我的問題是如何鏈接項目與dll和lib文件。
但主要問題是,我如何訂閱活動? 在API中,我可以調用函數,該函數返回的是事件響應,在MFC項目中我通常會在消息循環中進行訂閱。但是在Win32中沒有消息循環。
也許我自己使情況複雜化,比我想象的要容易。 請爲我澄清這種情況。
謝謝。
當有人提出多個問題時,總是很難回答......如果您的「主要問題」出現,請顯示訂閱事件的相關API調用。你錯了Win32中沒有消息循環......只是沒有MFC消息循環。
我回答了現在的簡單問題......「你如何鏈接DLL」。我有點假設你正在使用Visual Studio。那是對的嗎?我這樣做,當我匆忙的方式是這樣的:
#include "mylib.h"
#pragma comment(lib, "mylib.lib")
這就是它的全部。當然我想要標題,但是當我在它的時候,我告訴編譯器鏈接庫。
我似乎回想起其他時間,我只是簡單地將庫文件拖到項目的解決方案視圖中,有效地將其添加爲源。這也是有效的。
長的方法是編輯您的項目設置,轉到鏈接部分,並根據輸入小節中,您將庫添加到附加依賴名單。您需要爲所有配置執行此操作。有很多方法可以很好地保持這一點,但我不會在這裏進行討論。
如果您沒有使用Visual Studio,請忽略我的答案。
「快點」!永遠不要通讀所有的雜注。 – xtofl
我正在使用Visual Studio。 函數調用的一個例子是: void SubScribL1Quotes(char * psymbol,BOOL bSubScrib); 及其響應爲: virtual int OnLv2Quote(st_L2Quote * pst); 我如何獲得此回覆? 謝謝。 –
這是非常神祕的...如果它使用Windows消息循環,那麼至少會採用'HWND',我想。你忽略了什麼?例如,是否有可以在API中設置的事件回調函數?或者,API是否創建對象?我看到'迴應'是一個虛擬功能。推測是你可以覆蓋的東西... – paddy
你不能用dll文件的項目鏈接,你可以用的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
當你直接使用Win32 API,它是由你來創建自己的消息循環。 –
我該怎麼做?我將如何確保我從API調用的函數獲得「事件」響應? –
也許我應該備份:你是否在這個程序中創建任何實際的窗口,或者它是一個控制檯程序? –