c# 中如何调用vc 的dll里函数输出参数是char**类型的导出函数? intptr[]类型吧,然后Marshal.PtrToStringAuto转字符串看看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试这样,可能可以int func_a(out string a,out string b); int func_b(string a, string b); [dllimport("xxx.dll")]private static extern int func_a(IntPtr[] a,IntPtr[] b); 然后string s=Marshal.PtrToStringAuto(a[0]);这样吧。 1.类型对照C语言类型(非托管) .NET类型(托管)void* System.IntPtrchar System.Charchar* System.String2.指针* 指针** 指针的指针 二级指针3.参数修饰符C C#in 输入 默认out 输出 outinout 输入输出 ref不知道你返回值的含义,代码大概思路应该是这样的:[DllImportAttribute("你的VC类库.dll")]public static extern int func_a(out string[] a,out string[] b);public static extern int func_b(string a,string b);private void button1_Click(object sender, EventArgs e){ if (func_a(out a,out b)==0); // 一般返回值为0时,表示成功 { for(int i=0;i<a.Lengh;i++) { MessageBox.Show(func_b(a[i],b[i]).ToString()); } }} C#与mysql数据库 如果将SQL语句封装到一个类里面,那么怎么将 @参数传过去呢? 对新的对话框编辑 远程导入库中报错!本地测试正常!服务器本地测试也正常!(高手?) winform 页面显示问题 DataGridViewComboBoxColumn 数据绑定后,怎么赋值? sql 求查询语句:表的某列的不相同值的明细 @@@@@@@@@@@@@@@@@@@@@@ "堆"和"栈" 到底有什么区别? 如何用DataSet表示业务实体 属性窗口老缩回去了就再也伸展不开 c#初学者在使用contextmenustrip时遇到的问题,希望得到帮助 c# 读取excel合并单元格出错!!!
int func_b(string a, string b);
private static extern int func_a(IntPtr[] a,IntPtr[] b); 然后
string s=Marshal.PtrToStringAuto(a[0]);
这样吧。
C语言类型(非托管) .NET类型(托管)
void* System.IntPtr
char System.Char
char* System.String2.指针
* 指针
** 指针的指针 二级指针3.参数修饰符
C C#
in 输入 默认
out 输出 out
inout 输入输出 ref
不知道你返回值的含义,代码大概思路应该是这样的:[DllImportAttribute("你的VC类库.dll")]
public static extern int func_a(out string[] a,out string[] b);
public static extern int func_b(string a,string b);private void button1_Click(object sender, EventArgs e)
{
if (func_a(out a,out b)==0); // 一般返回值为0时,表示成功
{
for(int i=0;i<a.Lengh;i++)
{
MessageBox.Show(func_b(a[i],b[i]).ToString());
}
}
}