2011-04-06 24 views
0

应该可以从没有相应的dll头文件的DLL中获得一个类对象!但是我怎样才能从头文件没有已知类型的GetProcAddress类的typedef?GetProcAddress一个没有头文件的类对象

你有个例子吗?

感谢和问候,

leon22

+0

您的意思是类定义吗?使用'typedef'可为现有类型或类型集合定义一个新名称,如'typedef int Array [3];' – harper 2011-04-06 11:07:51

回答

0

GetProcAddress给你一个函数的地址。当你有完整的C++类成员函数的装饰名称时,你可以得到它的地址。使用相同的信息,您可以使用undname实用程序获得该方法的签名。

但是您将需要头文件来获取类定义本身。

0

如果你不知道所涉及的类型,你不能调用一个函数,这几乎是结束。

+0

您可以使用Dependency Walker获取名称和类型! – leon22 2011-04-06 11:20:57

+0

@ leon22:那不就是你自己的问题吗? – MSalters 2011-04-06 12:12:12

+0

嗨!不,因为我不能在没有已知类型的头文件的情况下typedef我的类对象(也许有一种方法void *)!? – leon22 2011-04-07 07:08:46

0

如果我正确理解你的问题,你需要DLL中的一个对象(即实例)的地址。 GetProcAddr不会给你,但它可以给你一个函数的地址,这个函数可以反过来给你对象的地址,如果这个函数存在于DLL中的话。如果该函数具有外部“C”链接,则不会有任何名称混乱。

+0

我已经有了这个dll函数,它工作正常,但是当我们对头文件进行任何更改时,我们必须重新编译整个项目! – leon22 2011-04-06 11:41:02

相关问题