社区
C#
帖子详情
C# 中extern "C" _declspec(dllexport)不能用?
mishixiaosenlin
2011-03-22 03:23:13
最近开发一款手持设备,遇到了一点问题,厂家给了一个dll 然后又给了几段代码(不知道是不是C#的,他们工程师有点“白”一问三不知),其中有代码写到“extern"C" __decksoec(dllimport) int __stdcall Sum(int a);” 这个在我的程序里报错啊~~根本不能运行,我用的VS2008 在winform下开发的~各位大虾,救命啊~~
...全文
329
4
打赏
收藏
C# 中extern "C" _declspec(dllexport)不能用?
最近开发一款手持设备,遇到了一点问题,厂家给了一个dll 然后又给了几段代码(不知道是不是C#的,他们工程师有点“白”一问三不知),其中有代码写到“extern"C" __decksoec(dllimport) int __stdcall Sum(int a);” 这个在我的程序里报错啊~~根本不能运行,我用的VS2008 在winform下开发的~各位大虾,救命啊~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Just4life
2011-03-22
打赏
举报
回复
[Quote=引用 1 楼 qygcom 的回复:]
不像,C#通常这样 [DllImport("SHP_A3.dll")]
public static extern int SsmStartCti(string lpSsmCfgFileName, string lpIndexCfgFileName);
[/Quote]
+1
zhouxingyu896
2011-03-22
打赏
举报
回复
“extern"C" __decksoec(dllimport) int __stdcall Sum(int a);”
这是c++ 写的呢
提供给C#或者是其它语言调的
在 C#可以如下写法呢
[DllImport("生成Dll名称")]
public static extern 返回类型 函数名称(类型 参数,类型 参数);
bdmh
2011-03-22
打赏
举报
回复
c++的
qygcom
2011-03-22
打赏
举报
回复
不像,C#通常这样 [DllImport("SHP_A3.dll")]
public static extern int SsmStartCti(string lpSsmCfgFileName, string lpIndexCfgFileName);
【转】
extern
“C“以及__d
ecl
spec
(
dllexport
) 讲解和def文件dll导出方法
转自:https://blog.csdn.net/qing666888/article/details/41135245 一,__ d
ecl
spec
(
dllexport
): 将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。通常它和
extern
“C”合用,形式如下:
extern
"C" { __d
ecl
spec
(
dllexport
) void FUNCTION() { } } 这是由于在制作DLL导出函数时由于C ++存在函
【C语言笔记】dll库“__d
ecl
spec
”属性关键字总结,
dllexport
,dllimport
_d
ecl
spec
是在 Windows 平台上用于控制导出和导入符号的属性关键字,在 C/C++
中
经常用于 DLL 开发。__d
ecl
spec
(
dllexport
) 和 __d
ecl
spec
(dllimport) 是其常见用法,用于在编写 DLL 时标记函数或变量的可见性。在编写 DLL 时用于标记函数或变量,表示它们应该被导出,以便其他模块可以访问。用于将函数或变量从 DLL
中
导出,使其可供外部使用。在函数或变量声明之前使用,告诉编译器将其放入导出表
中
。
extern
"C"以及__d
ecl
spec
(
dllexport
) 讲解和def文件dll导出方法
一,__ d
ecl
spec
(
dllexport
):将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。通常它和
extern
“C”合用,形式如下:
extern
"C" { __d
ecl
spec
(
dllexport
) void FUNCTION() { } } 这是由于在制作DLL导出函数时由于C ++存在函数重载,因此_...
Windows C++ DLL开发:__d
ecl
spec
(
dllexport
/dllimport)原理与实战
动态链接库(DLL)是Windows平台模块化开发的核心技术,它通过运行时链接实现代码共享与资源复用。其原理在于将函数和数据从主程序分离,形成独立的二进制模块,从而提升软件的可维护性和部署灵活性。在C++开发
中
,微软特有的__d
ecl
spec
关键字是实现DLL导出的关键技术,其
中
dllexport
用于标记导出符号,dllimport则优化客户端调用性能。通过合理使用
extern
"C"链接规范,可以解决C++名称修饰带来的跨编译器兼容性问题。这种技术广泛应用于大型软件架构、第三方SDK和插件系统开发
中
,是实
C#
中
调用C++编写的Dll
本博文基于VS2013,实现了使用
C#
语言调用C++编写的DLL。并整理出C++函数的各项修饰参数
extern
”C”、__d
ecl
spec
(
dllexport
)、__stdcall等,
C#
调用时需要引入的命名空间System.Runtime.InteropServices,DllImport的各项属性。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章