高手救命,调用dll时提示"未将对象引用设置到对象的实例。"错误

catguy 2003-04-17 02:27:43
原来的C++的定义:
typedef int (WINAPI * Tdll_Submit)(int sSocket,longword *AMsg_id1, longword *AMSg_id2,BYTE Gsm_sign);

C#的写法
[DllImport("CM12Dll.dll")]
public static extern unsafe int dll_Submit(int sock,uint* AMsg_id1,uint* AMSg_id2,byte Gsm_sign);


调用:
public unsafe void CM()
{
uint L1=0;
uint L2=0;
dll_Submit(sock,&L1,&L2,1);
}

运行到最后行时提示"未将对象引用设置到对象的实例。"就算是定义成int sock,ref uint AMsg_id1,ref uint AMSg_id2,byte Gsm_sign 也是同样的提示。我完全没有办法,help me ,please ...........

...全文
122 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxue636 2003-04-30
  • 打赏
  • 举报
回复
我用delphi写的dll在C#中调用时也出现过这个问题:未将对象引用设置到对象的实例
后来我发现修改delphi写的dll中的exports函数声明部分,在其后加上stdcall;
问题就解决了,C#中调用此dll一切正常。
你也可以去看看你的dll是否需要加上stdcall;
祝你好运!!◎
Knight94 2003-04-17
  • 打赏
  • 举报
回复
如果很急的话,先用vc.net包一个。

如果你这个dll没有什么商业机密的话,给我发一分,让我试试,地址:knight94@sina.com
catguy 2003-04-17
  • 打赏
  • 举报
回复
IntPtr还是不行,怎么办,不行的只能用vc写个dll封装这个函数,C#来调用这个dll
Knight94 2003-04-17
  • 打赏
  • 举报
回复
难道不能用ref UInt32,你再试试下面的:
[DllImport("CM12Dll.dll", EntryPoint="Tdll_Submit",
CallingConvention=CallingConvention.Winapi)]
public static extern int dll_Submit(int sock,IntPtr AMsg_id1,IntPtr AMSg_id2,byte Gsm_sign);
Knight94 2003-04-17
  • 打赏
  • 举报
回复
你再给我看看你用我的声明后调用的代码
catguy 2003-04-17
  • 打赏
  • 举报
回复
VC6.0没有问题的,就是C#不行
Knight94 2003-04-17
  • 打赏
  • 举报
回复
如果你手头有VC6.0的话,用它写个程序进行调用,看是否可以?
zushenf 2003-04-17
  • 打赏
  • 举报
回复
用这个命名空间 using System.Runtime.CompilerServices ;
catguy 2003-04-17
  • 打赏
  • 举报
回复
longword是无符号32位,照着Knight94兄的方法还是同样的错误提示。还有什么地方可能出现问题。
ChristianBoris 2003-04-17
  • 打赏
  • 举报
回复
可以给一个学习调用DLL的例子的网址吗?
cenoda@elong.com谢谢
Knight94 2003-04-17
  • 打赏
  • 举报
回复
问一下,longword是多少位,如果不是32位,那么UInt32也要进行变化。
Knight94 2003-04-17
  • 打赏
  • 举报
回复
C#的写法
[DllImport("CM12Dll.dll", EntryPoint="Tdll_Submit",
CallingConvention=CallingConvention.Winapi)]
public static extern int dll_Submit(int sock,ref UInt32 AMsg_id1,ref UInt32 AMSg_id2,byte Gsm_sign);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧