怎么没人帮我呀。有没有人用过DLL呀
解决方案 »
- 中型项目,socket相关问题,在线希望求解决啊
- 关于3D模型的数学公式
- 如何通过程序调用得知本机的ip地址。
- winform 下 listbox.items.add(文本,值) 如何实现?
- 有关远程用户的IP和端口号的问题??
- c++中的结构体中存在字符数组,修改成C#中的结构体,怎么定义?
- 郁闷!把数据连接做成DLL,居然用ULTRAEDIT打开就可以看到数据库连接字串和SQL语句
- 状态栏内容显示的问题
- 散分,如何分出C#高级教程是第一版还是第二版?
- WPF中动态加载的自定义按钮,点击触发时更改其标题如何实现
- 怎样动态在TreeView的节点里插入它的字节点。
- .net下做安装程序怎么样做出填写注册码的信息窗体呀
很具体了的。
[StructLayout(LayoutKind.Sequential,Pack=1)]
public struct DeliverResp
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=11)]
public string SmsgID;
public int NmsgFormat;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=22)]
public string SsrcTermID; public int NisReport;
public int NmsgLen;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=201)]
public string sMsgContent;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=21)]
public string sDestTermID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=15)]
public string sRecvTime;
}
// 申明
[DllImport("SmgpDll.dll")]
public static extern int SMGPDeliver(int nTimeout,ref DeliverResp pDeliverResp);// 调用
DeliverResp dr = new DeliverResp();
int i = SMGPDeliver( 5000,ref dr );
结果编译通过了。但运行时没有返回数据。
public static extern int SMGPDeliver(int nTimeout,ref DeliverResp pDeliverResp);
这样子就是对DLL的引用呀。
因为在C/C++中数组的概念与C#中不一样,所以……
但我现在也没有想到你这个问题和解决办法!
你用string 肯定会出问题的unicode编码的,16or32一个字符。你应该用byte[],or sbyte[],如果不行就用指针,C#同样有指针的。