我收到了签名
typedef Trajectory* (__stdcall* Tcreate)(const Vector* v1, const Vector* v2);
我需要能够实现一个调用名为&#34的函数的DLL;创建"
我创建了这个函数:
__declspec(dllexport) Trajectory* create(const Vector* v1, const Vector* v2)
{
...
}
在此功能中,我尝试访问v1
的属性,例如v1->x
,但我收到了错误消息:
无法评估表达式
当我尝试通过调试器检查变量时。
我怀疑这可能是一个问题,因为我与__stdcall*
中给出的Tcreate
不匹配。
如何根据Tcreate
typedef创建一个允许我访问v1
和v2
属性的功能?
如
__declspec(dllexport) Tcreate create(const Vector* v1, const Vector* v2)
{
}
希望如果我的函数定义与确切的签名匹配,我可以在v1
和v2
中获取数据!
编辑: 我试图创建如下函数: __declspec(dllexport)Object * __stdcall create(const Vector * v1,const Vector * v2) { ... }
它编译,但是当我这样做时,执行程序说它无法找到函数"创建"我假设它使用的是GetProcAddress,但由于exe没有调试信息,我无法确定。
答案 0 :(得分:0)
您应该使用
在调用者中导入该函数 __declspec(dllimport) Trajectory* create(const Vector* v1, const Vector* v2);
它还取决于你的dll如何加载,显式或隐式。这是一个很好的网站,用于描述MS C ++