vb文件未找到dll

我用cb写了一个dll,然后我用VB调用它,我在自己电脑上就把dll和VB工程放同一目录一切正常,然后我把exe和dll拷到别的电脑上,dll就和exe放一起的,就提示找不到这个dll,这到底是什么问题?
注册我一开始就用过了,但是提示找不到library模块的,system32目录这个我也放过的,主要是我自己电脑就可以,别的电脑就不行,我和别的电脑弄成一样的,就一个文件夹,我电脑就可以的,谢谢各位百度好友解答!
自己已解决,是dll编译的时候,在工程里Vcl不要勾再生成dll就可以了

需要在"开始"-->"运行"中注册.
DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。

DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。

DLL的全称是Dynamic Link Library, 中文叫做“动态链接文件”。在Windows操作系统中, DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。而有些DLL文件可以被许多程序共用。因此, 程序设计人员可以利用DLL文件, 使程序不至于太过巨大。但是当安装的程序越来越多, DLL文件也就会越来越多, 如果当你删除程序的时候, 没有用的DLL文件没有被删除的话, 久而久之就造成系统的负担了。

DLL是动态连接库。使用动态连接库的一些好处是:
1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。
2.在钩子程序过滤系统消息时必须使用动态连接库。
3.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作。而且,各个模块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在一个动态连接库中,让小组的其他成员使用。
4.为了实现应用程序的国际化,往往需要使用动态连接库。使用动态连接库可以将针对某一国家、语言的信息存放在其中。对于不同的版本,使用不同的动态连接库。在使用AppWizard生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的动态连接库实现的。
VC++、C++ Builder、Delphi都可以编写DLL文件。Visual Basic 5.0以上版本也可以编写一种特殊的DLL,即ActiveX DLL。

DLL不是独立运行的程序,它是某个程序的一个部分,它只能由所属的程序调用。用户不能,也不需要打开它。

Trackback地址: http://www.yculblog.com/trackback/0/167063

就比如第一次入学,虽然你坐在教室里.但是如果没有写你的档案,老师是不会认识你的.也就不会找到你.

同样道理,如果DLL文件没有注册,系统注册表中就没有这个DLL文件信息.那么等到调用的时候,因为不知道这个DLL文件的位置,只能报告没有这个DLL.所以这时候就需要注册DLL了.
WINDOWS系统的DLL不用注册.因为安装时已经注册好了.

注册:
regsvr32 文件名
解除注册
regsvr32 文件名 /u
不弹出信息框
regsvr32 文件名 /i
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-13

解决这个问题,必须按照VB搜索和加载动态链接的规则放置动态链接文件。规则如下:

1)如果在VB中声明Dll函数时,Lib所指动态链接库文件不带路径而只有文件名,如以下语句所示:

Public Declare Function MyFunc Lib "Mydll.dll" (ByVal x As Long) As Long

则动态链接库文件 Mydll.dll 必须放置在:

    VB程序运行的当前文件夹中

    或者,放置在%WinDir\System32%文件夹中(通常为 C:\Windows\System32)

2)如果在VB中声明Dll函数时,Lib所指动态链接库文件带路径名,如以下语句所示

Public Declare Function MyFunc Lib "C:\Mydll.dll" (ByVal x As Long) As Long

则动态链接库文件 Mydll.dll 必须放置在所指定的文件中,即 C:\中

第2个回答  2008-02-22
你所做的编译没有脱离那种语言的环境,所以就会出现这样的问题。
第3个回答  2008-02-22
您可以把这个DLL放到system32里面看看.
分给楼上,楼上正解~

补充`
"但是提示找不到library模块的"
那就不是找不到dll
您是不是dll还需要框架或者语言库?本回答被提问者采纳
第4个回答  2008-02-22
放到system32里注册一下试试看
相似回答