一个很大很大很大很大很大的警告框,说缺少dll!我有pas文件,你说怎么办?(300)(300分)

  • 主题发起人 主题发起人 白衣书生
  • 开始时间 开始时间

白衣书生

Unregistered / Unconfirmed
GUEST, unregistred user!
情况是这样的: (请您耐心的把它看完)

我在网上下载了一个程序(有源码)。
在D6中编译运行时(IDE,F9),就弹出一个很大的错误警告框,按下“确定”后程序就不执行了!
错误警告框是这个样子的:
|---------------------------------------
| 标题: project1.exe - 无法找到DLL
| 内容:
| 无法找到动态链接库 dll_abcx.dll 于指定路径 D:/abcd;D:/WINNT/System32;
| D:/WINNT;D:/programFile/Borland/Delphi6/Bin........... 等等后面还有很多一大堆
|---------------------------------------


然后我就去找,找到一个文件,但是它是一个以 .pas 结尾的文件,用D6打开一看,
内容如下:
library dll_abcx; // 注意这个 名称和警告错误框上的名称一样 : dll_abcx
// 并且这个.pas 的开头不是unit,而是library !!!!!!!!!!!!
uses
SysUtils,
Windows,
Classes,
Messages,
Math,
Dialogs,{$R *.RES}
var
hMouseHook : HHOOK;
SpyInstalled : Boolean;
............................
............................
.............................
exports
MouseWndProc,
InstallMouseHook,
UnWiseMouseHook;
begin
..............
...........
..............
end.
( 太长了 我不能不它全部copy下来 不然屏幕就滚不动了 :D )

问题:
1. 当按下F9运行时弹出的错误警告框,是不是这个名称为“ dll_abcx ”的东东引起的(因为它是.pas的,不是.dll)?

2. 假如我想安装这个dll, 应该怎样做? (因为我只有.pas 的文件)

3. 用不用把这个这个以 .pas 结尾的文件搞成以.dll结尾的东东??
如需要,在D6中怎样做?(直接编译? 还是直接改后缀名? )

4. delphi编译的exe文件需要动态链接库支持,这样的动态链接库是不是都是 以 .dll结尾的文件??

小弟是一个菜鸟, 刚学delphi,对于象 动态链接库 这么深奥的东西,一时还难以弄明白!
所以请有经验的各位FW帮个忙, 给解释解释、 指点指点 !

小弟感激不尽! 帮忙提前者有分!
 
你把这个文件用Delphi打开之后,选择Project-》Build dll_abcx, 然后就会生成dll_abcx.dll 。
 
to Activer:
用D6打开这个pas文件后,Project-》Build 选项是灰色的 ,不能使用的!
怎么办?
 
编译这个pas为dll,再将它拷贝到一大堆路径中的任何一个之中。
 
用Delphi打開dll_abcx.dpr文件,不是dll_abcx.pas文件。
然后
选择Project-》Build all Projects, 然后就会生成dll_abcx.dll 。
 
to LeeChange:
怎么编译啊?
单独打开这个文件后,project菜单项中选项大都变灰色!

把它在什么环境中编译?
 
to zxb200:
不会吧? 我的只有dll_abcx.pas文件, 根本没有dll_abcx.dpr文件!

是不是我要重新建立一个project项目,把这个dll_abcx.pas加入到项目中?

我去试试!
 
把dll_abcx.pas改成dll_abcx.dpr,然后编译。
 
把后缀改成DPR然后再打开编译
 
to hzb smilboy:
dll_abcx.pas改成dll_abcx.dpr,然后编译

提示用 Run-> Parameters ,何意?
 
Ctrl + F9就可以了,然后找生成的Dll文件。
 
To 白衣书生:
该做的他们都已经说了,如果你成功地将dll_abcx.dpr编译为了.dll文件,就可以找得到了。
 

1. 在File菜单上New->Application

2. 按Ctrl_F12,选Project1。出现:
program Project1;(或Project2)
uses
Forms;
{$R *.RES}等等!!

3.在Project菜单上选Remove from project...选Unit1后按Ok!

4.在File菜单上选择save as,保存到你的目录D:/abcd下,文件名字一定要为dll_abcx。
注意和你的第一个程序在同一目录。

5.在File菜单上选择open,打开你的pas文件dll_abcx.pas

6. 在Edit菜单上选择选择Select All,按Ctrl_C复制,按Ctrl_Tab切换到dll_abcx.dpr编辑窗口。
在Edit菜单上选择选择Select All,按Del键,再按Ctrl_V复制!

7. 按Ctrl_F9编译!若编译出现错误,是dll_abcx.pas的问题,我也没办法!

8. 打开你的第一个程序(DPR文件)。编译执行即可!(DLL不会报错了!但是其它的错误我也没得法子罗!)

 
duckstar:谢谢~ 搞定!

to Sachow:你说的没错! 我已经生成dll了!

to wql:哥们你说的很详细! 谢谢!

每个人都会有分的! :D
 
接受答案!

谢谢各位的回答! 送分了!
 
来晚了,哈哈
 
后退
顶部