需要在C#中调用 C/C++ 写的DLL,但里面函数传递参数为char* 形式,
如 [DllImport("GP-32.DLL", EntryPoint = "ibwrt", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int ibwrt(int ud, char * buf, long cnt);
怎么将string 或 char[]转换为char* 和将
char* 转换为 string 或 char[]?
如 [DllImport("GP-32.DLL", EntryPoint = "ibwrt", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int ibwrt(int ud, char * buf, long cnt);
怎么将string 或 char[]转换为char* 和将
char* 转换为 string 或 char[]?
十分感谢!!
public static extern int ibwrt(int ud, StringBuilder buf, long cnt);//调用
int ud;
long cnt;
StringBuilder buf=new StringBuilder();
ibwrt(ud, buf, cnt);
IntPtr ptr = Marshal.StringToHGlobalAnsi(w);
if (SendMessage(hEdit, WM_GETTEXT, 100, ptr))
或是
StringBuilder builder = new StringBuilder(1024);
直接用builder。
http://www.pinvoke.net/default.aspx/kernel32.getshortpathname
short *
->
ref short