调c的dll!

oldcowboy 2000-07-24 08:52:00
我用vb调自己用c写的dll,不论我把dll放在哪里,都告诉我:
实时错误,dll文件找不到,这是为什么?
盼望哪位老大能指教。
多谢。
...全文
196 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldcowboy 2000-07-24
  • 打赏
  • 举报
回复
还是没用,你说的方法我已经试过多次了。没用。
不论我把dll放在哪里都没用。
谢谢。
Wingsun 2000-07-24
  • 打赏
  • 举报
回复
你的vb的当前路径下面没有这个DLL,如果你只是启动VB然后加载工程的话,当前路径不在你的工程目录,而在VB的工作目录,不信的话可以如下就可以得知:
1。按下ctrl+G
2.键入?curdir
保证得到的结果是:D:\Program Files\Microsoft Visual Studio\VB98之类的结果,也就是你的VB的安装目录,
3。chdrive "D:"将当前工作盘转道你的工程所在的地方。
4。chdir "D:\Program\ProjectPath"将当前工作路径转道你的工程所在的地方。
然后运行就可以了。
当然也可以在程序启动时加入以上语句,将当前的工作路径修正。不过最好将DLL放到Windows\System中。因为你的最后的发行版本可能工作路径与程序的安装路径不一致,那么上面的语句就会出问题。
vb查找DLL等东西先在本地目录找,然后是window,windows\system(9x) or windows\system32(NT,2000) 在是Path指明的路径。找不到就报错。好吧就这样了,去试一试吧。
oldcowboy 2000-07-24
  • 打赏
  • 举报
回复
c的声名:
void WINAPI void WINAPI ORCA_SessionOpen(PORCA_INFO lpORCA_Info)
vb的声名:
Public Declare Sub ORCA_SessionOpen Lib "E:\Calldll\My.dll" (PORCA_INFO lpORCA_Info)
Public Declare Sub ORCA_SessionOpen Lib "My.dll" (PORCA_INFO lpORCA_Info)
Un1 2000-07-24
  • 打赏
  • 举报
回复
把vc, vb的函数声明贴上来!
oldcowboy 2000-07-24
  • 打赏
  • 举报
回复
我试过了,没用。
我怀疑是vb的设置问题。
可msdn上写了查找dll的顺序呀。我在每个查找路径上都放了一个副本,就是没用。
指明全路径也不管用。
请再指教。
Limu 2000-07-24
  • 打赏
  • 举报
回复
你的C语言动态链接库格式不对,VB可能不认识,C-DLL须为标准的DLL(带有引出函数)或者是ActiveX DLL,ActiveX OCX
Michaelyfj 2000-07-24
  • 打赏
  • 举报
回复
在vb中指定dll的全局路径试一试
oldcowboy 2000-07-24
  • 打赏
  • 举报
回复
请问limu:
C-DLL须为标准的DLL(带有引出函数)什么意思?
什么样的dll是非标准的呢?
我的dll也带带有引出函数啊。在def文件中定义过了。
请问这和操作系统有无关系。因为是在95下写的dll,而现在在nt下用vb调
UserReg 2000-07-24
  • 打赏
  • 举报
回复
在DLL中函数的时候加上__stdcall
如:
int __stdcall myFunc(int a, int b)
{
............
}

7,762

社区成员

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

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