关于VB.net调用动态库的问题

雪山非熊 2010-06-17 01:54:53
有一个用VC写的DLL,标准win32 DLL,用C语言方式写的,非.net方式
用VB6,和VC调用都正常,但用VB.net调用,函数的返回值不对,但函数功能运行正常,谁知道这是为什么吗?

有人说.net调用非.net的dll需要重新封装一下,是这样吗,不太了解。

请知道的帮帮我,谢谢。
...全文
136 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪山非熊 2010-06-18
  • 打赏
  • 举报
回复
这个问题已经解决了,原因就是别人调用的时候数据类型定义不对。

谢谢大家!
xingyuebuyu 2010-06-17
  • 打赏
  • 举报
回复
Private   Declare   Function 函数名   Lib   "DLL名称"   Alias   "导出函数名字"   (ByVal xx   As   Byte) As UInt32


DWORD 对应.NET中的UInt32
http://msdn.microsoft.com/zh-cn/library/172wfck9(VS.80).aspx

http://msdn.microsoft.com/zh-cn/library/8bbftkst(VS.85).aspx

http://msdn.microsoft.com/zh-cn/library/42b9ea93(v=VS.85).aspx

雪山非熊 2010-06-17
  • 打赏
  • 举报
回复
动态库是我写的,格式如下:
extern "C"
{
__declspec(dllexport) DWORD WINAPI XXX(BYTE XXX)
{
......
}
}

然后给别人调用,我不会VB.net的。
雪山非熊 2010-06-17
  • 打赏
  • 举报
回复
比如正常应该返回1,VB6中正确,但是在VB2005里,返回值却是一个随机数
csdnadmin 2010-06-17
  • 打赏
  • 举报
回复
不应该啊,我用的正常啊,估计是数据类型惹的祸
大笨蛋 2010-06-17
  • 打赏
  • 举报
回复
返回值不一样?
你可以分析返回值和理论值有什么差别...
还有就是要注意:C和vb中的数据类型差别
xlh0053 2010-06-17
  • 打赏
  • 举报
回复
可能是因为语法上的差别导致返回值不一样吧

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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