c#如何调用这个vc++做的DLL文件 这是人家给我的VC++声明原型extern "C" __declspec(dllimport) int RecToFile(char *filename,CString result[13][2]); int _num;__declspec(dllexport) int RecToFile(char *filename,CString result[13][2]){ return _num;} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1:[DllImport("C++动态库.dll")]引进来。public static extern int RecToFile(IntPtr filename,IntPtr results)2:难点CString二维数据。通过 Marshal对 results进行分析。获得字符串数据。 这里有个一维数据的例子,看看对你有没帮助。API[DllImport("coredll")] internal extern static void RasEnumEntries(string sReserved, string sPhoneBook, byte[] pEntries, ref int lpcb, out int lpcEntries);C#实现。private static string[] EnumEntryNames() { ArrayList al = new ArrayList(); int cb = 0, cEntries; Native.RasEnumEntries(null, null, null, ref cb, out cEntries); byte[] entries = new byte[cb]; Native.RasEnumEntries(null, null, entries, ref cb, out cEntries); for (int i = 0; i < cEntries; i++) { RasEntryName en = RasEntryName.FromData(entries, RasEntryName.GetSize() * i); al.Add(en.ToString()); } return (string[])al.ToArray(typeof(string)); }=========public static RasEntryName FromData(byte[] Data, int offset) { RasEntryName en = new RasEntryName(); Buffer.BlockCopy(Data, offset, en.data, 0, en.data.Length); //把有用数据拷到一个空间中 return en; } 如果给文本框加上提示文字 关于泛型问题! 关于在backgroundworker控件下创建子控件的问题 c# winsock接收数据不正确 是去是留,请兄弟们指点一下! 急求,在C#中tabcontrol页面屏蔽问题 非托管类型的声明 请问什么原因会造成这段代码出现超出索引错误 VB中的Handles在C#中怎么写啊 哪位来给个思路 winform 怎么把Datagridview中的数据导出Excel? 程序在调分辨率后部分界面看不见了!急!!!
引进来。public static extern int RecToFile(IntPtr filename,IntPtr results)2:难点CString二维数据。
通过 Marshal对 results进行分析。获得字符串数据。
[DllImport("coredll")]
internal extern static void RasEnumEntries(string sReserved, string sPhoneBook, byte[] pEntries, ref int lpcb, out int lpcEntries);
C#实现。private static string[] EnumEntryNames()
{
ArrayList al = new ArrayList(); int cb = 0, cEntries;
Native.RasEnumEntries(null, null, null, ref cb, out cEntries);
byte[] entries = new byte[cb];
Native.RasEnumEntries(null, null, entries, ref cb, out cEntries);
for (int i = 0; i < cEntries; i++)
{
RasEntryName en = RasEntryName.FromData(entries, RasEntryName.GetSize() * i);
al.Add(en.ToString());
}
return (string[])al.ToArray(typeof(string));
}
=========
public static RasEntryName FromData(byte[] Data, int offset)
{
RasEntryName en = new RasEntryName();
Buffer.BlockCopy(Data, offset, en.data, 0, en.data.Length); //把有用数据拷到一个空间中
return en;
}