为什么在VB6中调用DLL文件提示无法调用

Aro0223 2012-09-07 06:31:27
别人给了我个C++开发的动态链接库,现在让我在VB控件中调用,但是我在工程终究是引用不上来是怎么回事,提示是不能将引用加到指定文件,哪位知道怎么回事指点下,谢谢
...全文
521 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
现在还是人类 2012-09-08
  • 打赏
  • 举报
回复
建议你在XP下调试,调试成功了在想办法移植到Win7以上的系统,特别还是64位的更容易出错。还有就是DLL路径和文件名是否正确都会影响结果。
Aro0223 2012-09-08
  • 打赏
  • 举报
回复
public double originalPress(double pt1, double pc1, double _t_up, double _t_down,double _rg, double _welldepth, double _tubedepth, double _rti, double _rtout, double _rdi, double _qsc, double _qw, double medicamentRate, double medicamentRateMini);
这是别人给我提供的函数,我用的是64位的Win7,我是要在用户控件里引用
现在还是人类 2012-09-08
  • 打赏
  • 举报
回复
你的dll文件要放在与你编译好的Exe同一目录下或放到系统的 System32 目录下,还有就是要注意函数名的大小写绝对要一样,否则是不行的。
Aro0223 2012-09-08
  • 打赏
  • 举报
回复

Private Declare Function originalPress Lib "design_dll.dll" (ByVal pt1 As Double, ByVal pc1 As Double) As Long
Private Sub Command5_Click()
Dim a As Double
a = originalPress(1, 2)

MsgBox a
MsgBox b

End Sub
谢谢各位的回答
3#你的我试过,但是提示找不到Dll入口点originalPress in design_dll.dll

请问这是什么情况
  • 打赏
  • 举报
回复
你可以这种方式使用
Private Declare Function Send Lib "ws2_32.dll" Alias "send" (s As Long, buf As Any, buflen As Long, Flags As Long) As Long

把DLL放在EXE同目录,或者放到SYSTEm32
threenewbee 2012-09-07
  • 打赏
  • 举报
回复
因为这个dll是标准dll,所谓标准dll就是那些有导出函数,像调用api那样直接调用里面函数的,而不是activex com dll,只有com dll才可以引用并且像访问对象那样访问。
现在还是人类 2012-09-07
  • 打赏
  • 举报
回复
自己声明API,声明API的方法首先需要了解函数原型,然后再根据函数原型进行声明。不过如果你没接触过API函数,估计你用起来也会遇到很多问题,你应该先看看 VB 调用 API 方面的资料再弄比较好。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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