C#调用C++的dll存在的问题
2024-09-29 03:48:06
C#调用C++写的DLL时,在C#程序中,使用DllImport定义C++导出函数的定义信息,之前在C++中定义导出函数时,使用了long作为参数类型,使用C#调用时,开始在64位版本是哪个测试,一切正常,可使用32位环境调试时,怎么都不对,不论怎么调整DllImport的属性设置都不正确,上网查也没查到什么有效的信息,正当想放弃是,在调试中发现本来是第二个参数的值,在第三个参数中出现,第二个参数和第三个参数都是字符串指针,突然想起long在C++程序中32位环境是32位长,64位环境是64位长,而C#的long长度固定为64位长,这正好导致在32位环境下,C#的64位long的传递到C++中,只取了32位,后32位当成了第二个参数的指针,导致参数传递不正确了,将long改成short,一切正确了。
特意记录一下,避免以后遇到同样的问题。
最新文章
- SSDB安装配置记录
- IP地址,子网掩码,默认网关,DNS服务器详解
- MySQL查询语句完整语法解析
- 关于ArcGIS10.0中的栅格计算中的函数
- hdu Collect More Jewels
- cwRsync 配置文件详解
- mysql启动问题access denied for user 'root'@'localhost'(using password:YES)
- Java反射基本玩法
- Boost.Foreach
- nexus建立maven仓库私服及Snapshots、release的版本管理
- Linux下UDP收/发广播消息简单实现
- Android Animation学习 实现 IOS 滤镜退出动画
- zabbix 模版其实就是主机
- MySQL 高效查询
- springMVC引入Validation详解
- [NOIP2016]愤怒的小鸟 D2 T3
- Centos 7 docker 启动容器 iptables 报 No chain/target/match by that name
- 8. svg学习笔记-文本
- 网络编程基础【day10】:我是一个线程(四)
- 由设置body线性背景色引发的问题-----当声明文档类型时,对body设置线性背景色,页面背景色无法整体线性过渡