谁能挑战: delphi能力pk(如今论坛上还有delphi高手吗) ( 积分: 300 )

  • 主题发起人 主题发起人 那年黄梅花开
  • 开始时间 开始时间
我不是高手,我不是高手,我不是高手
 
是在无法相信!30M的.EXE

不是一般的高!太高了 帮不上忙!
 
传说中的垃圾软件。
 
以前我给广东移动开发的物流项目800000行代码.静态连接编译EXE后才6MB.
估计楼主的的东东里面N多图片等资源.想不出30MB的EXE是什么.
可能就是楼上说的东东
 
这个软件是前人设计的,虽然总体架构是不好,但这是好几年前的事了.

但你说它不好,抱怨有用吗,出现问题总得解决,我们是来解决问题的.
如果把我们大家的公司都去和微软,ibm比,那问题肯定会很多,也不用麻烦你来找.
老板请你来不是来叫你说问题,找问题,而是你来解决问题的.

不知楼上的白,你又做过什么产品,说来听听,不要动不动就用垃圾来形容别人的产品.
我们的产品有其亮点,尽管有其瑕疵,但作为企业级应用软件来说无伤大雅,同时市场也确实为公司的产品做了最好的评价,无需你指三道四.

这个编译问题,目前我已基本解决.
 
exe文件这么大,肯定是图片,图标等占体积资源太多。
我一个程序,全部编译,编译器显示24万行,体积才一点四兆。
再加个壳压缩一下,不到600K
 
"肯定是图片,图标等占体积资源太多"
很可能,呵呵
我们的有300多万行,大啊,呵呵.
 
一个程序做得那么大,不管它卖得如何好,也不能摆脱垃圾的地位。
程序不是那样写的。
象曝雪公司的大型游戏,其可执行核心EXE也就是几M而已。
出来几十M的程序,不是垃圾是什么。
 
到盒子里把这个软件装上http://www.2ccc.com/article.asp?articleid=4108
可以捕捉到错误。根据错误修改源码。建议分开,能用dll的就用dll.
 
是的,这样的垃圾。要他做什么!
肯定是拿人家东西想改改继续卖钱。
 
我只是很少情況下用 Delphi會在鏈接時出錯,但一般重啟後會好的,

但你的情況不是這樣,不好說

升級到 Delphi7 試試
 
我们公司的差不多,有20多MB,有几个dll,可惜价值没那么多才10来W~。楼主遇到的错误。我们也经常遇到;特别是dll调涞掉去的;内存经常出错
 
解决问题才是关键:
在你的文件夹下建一个dat文件,内容:
dcc32 DataLog.dpr //DataLog.dpr 你的工程名
双击运行
 
如果没记错的话,好象DELPHI自动分配了16K内存用于程序内存分配,可能是这里溢出
 
我是来学习的
 
谢谢大家的讨论:
送个自己写的记事本四种编码格式的解析:
function readAnsiFile(sFile: string): string;
var
aMemoryStream: TMemoryStream;
sBuffer: shortstring;
begin
aMemoryStream:= TMemoryStream.create;
try
aMemoryStream.LoadFromFile(sFile);
SetLength(sBuffer,1);
aMemoryStream.Position:= 0;
while aMemoryStream.Position<aMemoryStream.Size do
begin
aMemoryStream.ReadBuffer(sBuffer,1);
Result:= Result+ pchar(@sBuffer[0]);
end;
finally
aMemoryStream.free;
SetLength(sBuffer,0);
end;
end;

function readUnicodeFile(sFile: string): string;
var
aMemoryStream: TMemoryStream;
sBuffer: shortstring;
begin
aMemoryStream:= TMemoryStream.create;
try
aMemoryStream.LoadFromFile(sFile);
SetLength(sBuffer,2);//头2字节为unicode标识符
aMemoryStream.Position:= 2;
while aMemoryStream.Position<aMemoryStream.Size do
begin
aMemoryStream.ReadBuffer(sBuffer,2);
Result:= Result+ widechar(ord(sbuffer[1])*256+ord(sbuffer[0]));
end;
finally
aMemoryStream.free;
SetLength(sBuffer,0);
end;
end;

function readUnicodeBigFile(sFile: string): string;
var
aMemoryStream: TMemoryStream;
sBuffer: shortstring;
begin
Result:= '';
aMemoryStream:= TMemoryStream.create;
try
aMemoryStream.LoadFromFile(sFile);
SetLength(sBuffer,2);
aMemoryStream.Position:= 2;
while aMemoryStream.Position<aMemoryStream.Size do
begin
aMemoryStream.ReadBuffer(sBuffer,2);
Result:= Result+ widechar(ord(sbuffer[0])*256+ord(sbuffer[1]));
end;
finally
aMemoryStream.free;
SetLength(sBuffer,0);
end;
end;

function readUtf8File(sFile: String): String;
var
aMemoryStream: TMemoryStream;
sBuffer: shortstring;
begin
Result:= '';
aMemoryStream:= TMemoryStream.create;
try
aMemoryStream.LoadFromFile(sFile);
SetLength(sBuffer,aMemoryStream.Size-3);
aMemoryStream.Position:= 3; //头3字节为文件头:UTF8标识

aMemoryStream.ReadBuffer(sBuffer,aMemoryStream.Size-3);
Result:= Utf8ToAnsi(pchar(@sBuffer[0]));

finally
aMemoryStream.free;
SetLength(sBuffer,0);
end;
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
811
import
I
后退
顶部