社区
C#
帖子详情
C#调用C++dll参数问题 问题解决就能回家过年了
haoahui
2011-01-30 10:36:04
现在我用C#调用一个第三方dll 在传参数的时候出现了问题
问题简单表示如下
C++函数 method(struct st s)
C++定义的结构体 struct st { int a; char b[4] };
我在C#里面需要怎么定义这个结构体? 字符数组b在传值的时候传不过去
切盼各位指教
...全文
134
7
打赏
收藏
C#调用C++dll参数问题 问题解决就能回家过年了
现在我用C#调用一个第三方dll 在传参数的时候出现了问题 问题简单表示如下 C++函数 method(struct st s) C++定义的结构体 struct st { int a; char b[4] }; 我在C#里面需要怎么定义这个结构体? 字符数组b在传值的时候传不过去 切盼各位指教
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
QEVXWYQD
2011-01-30
打赏
举报
回复
我也正好在做这方面跨语言调用的东西。呵呵,新年快乐
haoahui
2011-01-30
打赏
举报
回复
[Quote=引用 3 楼 qevxwyqd 的回复:]
public struct st
{
public int a;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public char[] b;//或者public string b;
};
……
[/Quote]
祝你过年快乐
人到中年琐事多
2011-01-30
打赏
举报
回复
struct st { int a; char b[4] };
变通一下罗:
struct st { int a; int b };
1个int=4个char//将四个字节转换成一个整数用BitConverter类的ToInt32方法
或者干脆:
Int64 m = 0;
int a=33;//假如这是你的参数
int b=44;//将4个字节转换为一个整数
m = m&b;//先来低字节
m = (m<<32)&a;//再来高字节
method(m);
QEVXWYQD
2011-01-30
打赏
举报
回复
public struct st
{
public int a;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public char[] b;//或者public string b;
};
haoahui
2011-01-30
打赏
举报
回复
都放假了吗?!
haoahui
2011-01-30
打赏
举报
回复
真的很急迫 我也想回家过年啊
C#
调用
C++
的
dll
实例,回调函数,string和int数组
参数
传递
C#
调用
C++
的
dll
实例,回调函数,string和int数组
参数
传递,在vs2010下调试通过,总结在这里,供大家参考。
C++
调用
C#
的
DLL
实例程序
C++
调用
C#
的
DLL
实例程序,压缩包中包含部分程序说明,很小的几行代码,但是
C++
调用
C#
的
DLL
目的已经达到。
C#
调用
c++
工程文件(调试已通过)
C#
调用
c++
工程文件
C#
调用
c++
工程文件
C#
调用
c++
工程文件
C#
调用
c++
工程文件
C#
调用
c++
工程文件
C#
调用
c++
工程文件
C#
调用
c++
工程文件
C#
调用
c++
工程文件
C#
调用
C/
C++
Dll
中函数实例代码
实例代码说明如何在托管的
C#
代码中
调用
非托管的Win32 API或者自己用C/
C++
写的
Dll
中的函数,以及如何传递输入、输出字符串
参数
,结构类型
参数
等
问题
。
QT编写
DLL
调用
示例 方法
参数
返回值 事件回调
QT编写
DLL
给外部程序
调用
示例 方法
参数
返回值 事件回调 : 1:
C#
或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际
DLL
中函数名及
参数
一致; [
Dll
Import "qt
dll
dll
" ] public static extern int add int i ; 第三步:
调用
函数执行; Console WriteLine add 10 ToString ; 2:QT 第一步:引入头文件; #include <QLibrary> 第二步:定义函数指针 以备
调用
; typedef int Add int ; 第三步:载入
DLL
调用
函数执行; QLibrary lib "qt
dll
dll
" ; lib load ; Add add Add lib resolve "add" ; add 50 ; 3:C或
C++
第一步:引入头文件; #include <windows h> 第二步:定义函数指针; typedef int Add int ; 第三步:载入
DLL
调用
函数执行; HINSTANCE h
Dll
LoadLibrary "qt
dll
dll
" ; 载入
DLL
获取句柄 if h
Dll
NULL { Add add Add GetProcAddress h
Dll
"add" ; 获取函数地址 printf "%d" add 110 ; FreeLibrary h
Dll
; 释放
DLL
}">QT编写
DLL
给外部程序
调用
示例 方法
参数
返回值 事件回调 : 1:
C#
或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际
DLL
中函数名及
参数
一致; [
Dll
Import "qt
dll
dll
" ] public static extern int add in [更多]
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章