我用vc写了一个动态链接库,其中的一个函数原型是下面这样的:void myfunc(char* name);我想在C#中调用这个函数,我是这样调用的:// 声明
[DllImport("DllTest.dll")]
private static extern void ExportFunc(out char[] name);// 调用
char[] name = new char[100];
ExportFunc(out name);现在程序执行到这里就出错,这是什么原因?我分析是vc中char是ascii,但是在C#中char就变成了unicode码了,所以无法匹配就出错了。但是现在如何才能匹配上?
[DllImport("DllTest.dll")]
private static extern void ExportFunc(out char[] name);// 调用
char[] name = new char[100];
ExportFunc(out name);现在程序执行到这里就出错,这是什么原因?我分析是vc中char是ascii,但是在C#中char就变成了unicode码了,所以无法匹配就出错了。但是现在如何才能匹配上?
解决方案 »
- 关于c# select语句的,其中where后为参数!求指导!
- DataGridView某列绑定数据类型为Datetime,输入内容然后清空报错,求帮助
- select 读句
- C#如何获取LISTVIEW相关信息?在线等回。。。。
- winform的datagridview显示的时候滚动条拖动为什么屏幕会一顿一顿的????
- 关于.net中程序集的概念
- 请教怎么实现循环从数据库取多条记录,然后采用多线程的方式操作相应记录啊?
- 如何动态改变窗体控件的大小???(datagrid和winform)
- 一个简单问题,高分求解。。
- C#到底是什么东西?哪位解释一下?
- 在winform中datagrid显示的时候在最后一行后总会有一行null的数据,怎么去掉?
- socket通信中只能用ip地址才能通信,什么原因?
声明不加out;
private static extern void ExportFunc(StringBuilder name);调用:
using System.Text;string name;
StringBuilder sb = new StringBuilder(100);
ExportFunc(sb);name = sb.ToString();
void myfunc(char* name);需要
void myfunc(char** name);
或者
void myfunc(char name[100]);