【发布时间】:2016-04-16 01:23:28
【问题描述】:
我需要使用来自 Visual Studio C++ 或 Code:blocks MinGW 的 cygwin 编译的 dll。
我已经加载了 cygwin1.dll 和一些其他的 dll,这是必需的,例如 cyggcc_s-seh-1.dll、cygstdc++-6.dll 等。我的 dll 加载正常 我可以通过GetProcAddress 函数获取任何函数指针,但我的问题是
我的 dll 是带有许多类的 c++ dll。 我已经包含了必要的标题但是(我怎么能猜出哪个函数是谁) 我有不同的调用约定
000000051a5ae590 T _ZN6eq_res8is_breakEv
000000051a5ae810 T _ZN6eq_res8is_emptyEP5EqAdr
000000051a5ae700 T _ZN6eq_res8is_localEP5EqAdr
000000051a5b00c0 T _ZN6eq_res8monitorsEv
000000051a5af4e0 T _ZN6eq_res8req_cardEi
000000051a5af560 T _ZN6eq_res8ret_cardEv
000000051a5ae540 T _ZN6eq_res8set_exitEv
000000051a5ae9d0 T _ZN6eq_res9check_refEP6eq_svr
...
如何在 Visual c++ 中更改加载的 dll 或项目的函数调用约定? 或者,如何声明对象调用构造函数、对象的析构函数并使用 dll 中的其他类函数?
谢谢。
【问题讨论】:
标签: c++ visual-studio dll cygwin