【发布时间】:2012-06-26 11:01:40
【问题描述】:
假设我在 DLL 中有以下结构的定义:
typedef struct {
double varOne;
double varTwo;
} structOne;
structOne myStruct;
它是然后可以从加载 DLL 的主应用程序执行以下操作:
structOne * sPtr = (structOne *)GetProcAddress(libraryHandle, "myStruct");
我的问题是如果可以做一些类似的事情:
double * dPtr = (double *)GetProcAddress(libraryHandle, "myStruct.varOne");
- 如果你明白我想要什么并且这是可能的;语法是什么?
- 如果不可能;为什么?
- 如果您不理解我的问题;在评论中说出来!
问候并希望得到答案!
【问题讨论】:
-
我认为您误解了您的应用程序如何使用 dll 中的代码。您的应用程序在它自己的 dll 中结构的内存中创建一个本地副本。这就是POD。执行代码(即函数)也是如此,它们驻留在可执行文件的相同地址空间中。因此,整个“LoadLibrary”调用,它将 DLL 的内容物理加载到您的模块(exe)地址空间中。
-
答案在哪里?很遗憾,无法投反对票。
标签: c++ getprocaddress