1
導出的數據是否存在GetProcAddress版本?動態加載DLL導出的數據
我想這樣做:
Mydll.cpp:
MyDataType::MyDataType(long, wchar_t*)
{
//Dummy code
this->temp = 3;
}
__declspec(dllexport) MyDataType Here(50, L"random text");
MyClient.cpp:
int main(void)
{
HINSTANCE hData = LoadLibrary("MyDll.dll");
reinterpret_cast<MyDataType*>(GetDataAddress(hData, "Here"))->DoSomething();
}
也就是說,定義導出的數據( 「在這裏」)的UDT(「MyDataType」),並且它們在動態加載DLL時獲取它的地址。這可能嗎?
msdn頁面顯示「從指定的動態鏈接庫(DLL)中檢索導出的函數或變量的地址。」 - 即它應該只是工作(TM) – pm100
我要同意pm100。 當您在運行時加載DLL時,您描述的過程的哪些部分不做? – Phixle
檢查mydll.cpp的輸出。我不知道'__declspec(dllexport)'放在一個名稱上是什麼類型的,但可能是某種東西,所以GetProcAddress調用將無法使用「Here」找到該符號,並且您需要使用完整的名稱。 – 1201ProgramAlarm