DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: 19137911446
今日帖子: 17
在线用户: 8
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 10:49:21
标题:
我写的程序怎么这么大? 浏览:2888
加入我的收藏
楼主: 我写的程序怎么这么大?才完成三分之一就有1.5M
怎么办?是不是要把一部份程序放到.dll里?

我试了,有一部份内容,我放在.exe里一切正常,按.dll的要求放在.dll里,编译通过,但运行的时候出现莫名其妙的错误,搞得我不敢用了!
----------------------------------------------
-
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 10:56:28
1楼: 不太大。。。
----------------------------------------------
按此在新窗口浏览图片
=^@^=
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 11:18:35
2楼: 可是我怕整个完成后有6-7M,有点不好,

用.dll又怕出现莫名其妙的错误
----------------------------------------------
-
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 14:31:37
3楼: 把你调用DLL的部分贴出来,使用DLL并不会有什么问题。
----------------------------------------------
米软科技有限公司http://www.szmesoft.com
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 15:54:36
4楼: 我写了一个tjmx.dll如下
.........................................
uses
  SysUtils,
  Classes,
  Windows,
  Forms,
  ok_m in 'ok_m.pas',
  data_mod in 'data_mod.pas';

{$R *.res}

Procedure tjmx_dll;stdcall;
var xingbie : string;
begin
if Form1.Edit1.Text ='then
application.MessageBox('请填写名星姓名资料!','提示')
else if Form1.Edit2.Text ='then
application.MessageBox('请填写名星代码资料!','提示')
else if Form1.Edit3.Text ='then
application.MessageBox('请指定明星照片位置!','提示')
else if FileExists(Form1.Edit3.Text)= False then
application.MessageBox('您所指定的明星照片不存在!','提示')
else
begin
if Form1.CheckBox1.Checked = True then xingbie :='男'
else xingbie :='女';
if ExtractFilePath(Form1.Edit3.Text) <> ExtractFileDir(Application.Exename)+'\data\photo\' then
begin
if CopyFile(PChar(Form1.Edit3.Text),PChar(ExtractFileDir(Application.Exename)+'\data\photo\'+ExtractFileName(Form1.Edit3.Text)),True) <> False then
begin
Data_Mod1.ADOQuery1.Close;
Data_Mod1.ADOQuery1.SQL.Clear;
Data_Mod1.ADOQuery1.SQL.Add('Insert into mingxing (姓名,性别,代码,照片,备注) values ("'+Form1.Edit1.Text+'","'+xingbie+'","'+Form1.Edit2.Text+'","'+ExtractFileDir(Application.Exename)+'\data\photo\'+ExtractFileName(Form1.Edit3.Text)+'","'+ Form1.Edit4.Text+'")');
if Data_Mod1.ADOQuery1.ExecSQL <> 1 then
begin
application.MessageBox('添加数据出错!请稍后重新添加!','提示');
Deletefile(Pchar(ExtractFileDir(Application.Exename)+'\data\photo\'+ExtractFileName(Form1.Edit3.Text)));
end;
Data_Mod1.ADOTable1.Active := False;
Data_Mod1.ADOTable1.Active := True;
Form1.Edit1.Text :=';
Form1.Checkbox1.Checked := True;
Form1.Checkbox2.Checked := False;
Form1.Edit2.Text :=';
Form1.Edit3.Text :=';
Form1.Edit4.Text :=';
end
else application.MessageBox('照片文件已存在,添加数据出错!请先修改照片文件名再重新添加数据!','提示');
end
else if ExtractFilePath(Form1.Edit3.Text) = ExtractFileDir(Application.Exename)+'\data\photo\' then
begin
Data_Mod1.ADOQuery1.Close;
Data_Mod1.ADOQuery1.SQL.Clear;
Data_Mod1.ADOQuery1.SQL.Add('Insert into mingxing (姓名,性别,代码,照片,备注) values ("'+Form1.Edit1.Text+'","'+xingbie+'","'+Form1.Edit2.Text+'","'+ExtractFileDir(Application.Exename)+'\data\photo\'+ExtractFileName(Form1.Edit3.Text)+'","'+ Form1.Edit4.Text+'")');
if Data_Mod1.ADOQuery1.ExecSQL <> 1 then
application.MessageBox('添加数据出错!请稍后重新添加!','提示');
Data_Mod1.ADOTable1.Active := False;
Data_Mod1.ADOTable1.Active := True;
{Data_Mod1.ADOTable1.Refresh ;  }
{Form1.DBGrid1.Refresh; }
Form1.Edit1.Text :=';
Form1.Checkbox1.Checked := True;
Form1.Checkbox2.Checked := False;
Form1.Edit2.Text :=';
Form1.Edit3.Text :=';
Form1.Edit4.Text :=';
end;
end;
end;

exports
tjmx_dll ;

begin
end;


编译通过

在程序里调用,编译通过,但执行EXE时出错
"Access violation at address 005AD36F in module 'tjmx.dll'.Read of address 00000348.

不知为什么?请各位指教

----------------------------------------------
-
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 15:57:22
5楼: 调用部分呢?
----------------------------------------------
米软科技有限公司http://www.szmesoft.com
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 16:01:48
6楼: "Access violation at address 005AD36F in module 'tjmx.dll'.Read of address 00000348.
时CPU信息,看不懂!
此帖子包含附件:acheng_wh_200312916148.rar 大小:123.2K
----------------------------------------------
-
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 16:07:38
7楼:
以下是在主程序里调用dll

function tjmx_dll:string;stdcall;
external 'tjmx.dll';

.................


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
tjmx_dll;
end;

----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/9 16:42:43
8楼: 怎么会这样 看不出错误?
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 17:16:15
9楼: 是呀,所以我说容易出现莫名其妙的问题
----------------------------------------------
-
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 17:31:29
10楼: 好像是Data_Mod1没创建。
----------------------------------------------
米软科技有限公司http://www.szmesoft.com
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 17:46:58
11楼: Data_Mod1创建了,在data_mod.pas里面,要不,也编译不过!
----------------------------------------------
-
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2003/12/9 17:49:18
12楼: 我说的是这种创建:

Data_Mod1 := TData_Mod1.Create(Application);

----------------------------------------------
米软科技有限公司http://www.szmesoft.com
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/10 9:27:22
13楼: 更不行,一进去就死机!


有哪位高手能帮我解决这个问题,谢!
----------------------------------------------
-
作者:
男 catanx (catanx) ★☆☆☆☆ -
盒子活跃会员
2003/12/10 9:45:36
14楼: 也许是和别的dll用冲突
----------------------------------------------
我常逛的一个电影站,写写程序看看电影,不要太累了,会死人的:)
www.ddvan.com
很有特色哦,自己发觉吧。
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/11 13:26:07
15楼: 解决不了。。。。。我想哭!
----------------------------------------------
-
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2003/12/11 13:47:36
16楼: 在dll和exe的工程文件uses部分添加ShareMem试试
象这样
uses
  ShareMem,
  Forms...........

发布的时候带上DelphiMM.dll
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 acheng_wh (acheng) ★☆☆☆☆ -
盒子活跃会员
2003/12/11 17:06:06
17楼: 还是不行!同样的错误!
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/11 17:14:08
18楼: 实在是无能为力 偶也为你着急呀!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行46.875毫秒 RSS