簡體   English   中英

如何鏈接DLL以供LoadLibrary()使用(在Windows上的C ++中),並從調用exe導入變量

[英]How to link a DLL for LoadLibrary() use (in C++ on Windows ) and do import of variables from the calling exe

在Windows上,我有一個程序可執行文件,它是通過Windows鈎子注入DLL的目標。 掛鈎通過強制我執行LoadLibrary()將DLL注入目標程序空間。 我想將特定變量從exe導出到DLL,以便DLL可以讀取該變量的內容。

由於這是動態鏈接,因此鏈接程序不會將exe和DLL鏈接在一起。 我無法生成DLL,因為我在嘗試從exe導入的變量上收到鏈接器錯誤2001-外部未解決。 我嘗試在DLL中使用它:extern“ C” __declspec(dllimport)EGL_UINT8 * ssFrameDataBlock [];

但這不能解決鏈接錯誤。 顯然我缺少一些步驟。 如何從exe導出符號並將其導入DLL以進行動態鏈接? 導出和導入的每一側正確的語法是什么?

您還記得用__declspec(dllexport)裝飾變量的可執行文件定義嗎? 然后,您需要提供exe的.lib文件作為DLL構建的一部分。

如果您不導出至少一個符號(無論是dllexport還是def文件或命令行中的EXPORTS語句),將不會生成.lib文件。

如果您不能為DLL版本提供.lib,您也可以從DLL代碼中使用GetProcAddress()(盡管它的名稱可以獲取任何導出的地址,而不僅僅是函數)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM