首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DUMPBIN实用程序损坏的名称输出

DUMPBIN实用程序损坏的名称输出
EN

Stack Overflow用户
提问于 2013-12-24 10:34:33
回答 3查看 601关注 0票数 4

我正在使用DUMPBIN实用程序从c++ dll中获取损坏的名称,以便在c#应用程序中使用。我正在使用c++ (Dllexport)公开一个__declspec类成员函数,输出损坏的名称结果是

代码语言:javascript
复制
?InitPort@CProtocolStack@@QAEEHEPAEKE@Z = ?InitPort@CProtocolStack@@QAEEHEPAEKE@Z (public: unsigned char __thiscall CProtocolStack::InitPort(int,unsigned char,unsigned char *,unsigned long,unsigned char))

在导入相同的函数时,是否需要在C#应用程序中使用全名?如果没有,哪一部分足够进口?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-24 10:38:36

你只需要一点:

代码语言:javascript
复制
?InitPort@CProtocolStack@@QAEEHEPAEKE@Z

然后你宣布如下:

代码语言:javascript
复制
[DllImport("your.dll",
    EntryPoint = "?InitPort@CProtocolStack@@QAEEHEPAEKE@Z",
    ExactSpelling = true)]
static extern byte CProtocolStack::InitPort( /* etc. */);
票数 2
EN

Stack Overflow用户

发布于 2013-12-24 11:47:57

如果您没有使用托管C++ (可以直接从C#调用),请在接口extern "C"中声明函数,然后直接使用函数名。损坏可以从编译器的一个版本更改到下一个版本;extern "C"名称不会更改。

票数 1
EN

Stack Overflow用户

发布于 2020-11-18 02:32:02

如果您的函数不需要重载,您可以使用extern "C"来确定函数的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20759324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档