2015-08-25 2 views
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 динамически загружается. Это возможно?

+1

на странице msdn говорится: «Извлекает адрес экспортируемой функции или переменной из указанной библиотеки динамической компоновки (DLL)». - то есть он должен просто работать (tm) – pm100

+0

Я соглашусь с pm100. Какая часть процесса, который вы описали _isn't_, когда DLL загружается во время выполнения? – Phixle

+0

Проверьте экспорт с mydll.cpp. Я не знаю, какое искажение '__declspec (dllexport)' помещает имя, но, возможно, что-то, поэтому вызов GetProcAddress не сможет найти символ, используя только 'Here', и вам нужно будет использовать полное искаженное имя , – 1201ProgramAlarm

ответ

0

страница msdn говорит: «Извлекает адрес экспортируемой функции или переменной из указанной библиотеки динамической компоновки (DLL)». - то есть он должен просто работать (tm)

Смежные вопросы