ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

将dll方法从C导出到C#.我为什么需要:“ extern” C“”

2019-10-10 14:09:44  阅读:671  来源: 互联网

标签:dllexport c c-2



在我的dll中,有一种我想导出的方法.

//作品:

extern "C" __declspec(dllexport)

//不会工作

__declspec(dllexport)

C出口:

 extern "C" __declspec(dllexport) int Test();

C#导入:

[DllImport("CircleGPU2_32.DLL", EntryPoint = "Test", 
    CallingConvention = CallingConvention.StdCall)]
public static extern int Test();

为什么需要外部字母“ C”?

解决方法:

主要原因是要防止C名称修饰符修饰函数名称.

尝试在不使用外部“ C”的情况下导出它,并在Dependency Walker中检查生成的DLL,您将看到导出函数的名称完全不同.



标签:dllexport,c,c-2

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有