如何把qtintf70.dll编译进可执行文件,这样在发布程序的时候就不用拷贝这个文件了

hzdsxu 2003-08-23 12:08:56
不过这样可能文件比较大,有什么好办法
...全文
87 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
reallike 2003-08-23
  • 打赏
  • 举报
回复
可以把文件以资源流的方式存到EXE得资源里面。

在EXE文件初始化的时候,调出来,这样也是一个办法。

下面是我曾经找的一个有关存放、释放字体文件的一个回答。

换用Dll文件一样,不知道是否解决你这个问题。

Q:我有一些特殊语言的字体来用,它们存储在我的EXE文件里,但是两点。

* 我不想放到font文件夹里
* 我不想从EXE文件里面提取出来

如果可能,请告诉我。

因为,我的字体是自己做的不是windows自带的,我想保护自己的东西。

A:不太可能,必须提取出来。你可以使用这个保护过程来保护你的文件不被修改和删除。

在EXE执行的时候把字体放到临时文件夹里,结束的时候删除它。

function ProtectFile(sFilename : string) : hFile;
var
hf: hFile;
lwHFileSize, lwFilesize: longword;
ofs : TOFStruct;
begin
if FileExists(sFilename) then
begin
hf := OpenFile(pchar(sFilename), ofs, OF_READ or OF_WRITE or OF_SHARE_EXCLUSIVE);
if hf <> 0 then
begin
lwFilesize := GetFileSize(hf, @lwHFileSize);
if LockFile(hf, 0, 0, lwFilesize, lwHFilesize) then
Result := hf else Result := 0;
end
else Result := 0;
end
else Result := 0;
end;

//..
var
ResS: TResourceStream;
TempPath: array [0..MAX_PATH] of Char;
TempDir: string;
begin
GetTempPath(Sizeof(TempPath), TempPath);
TempDir := StrPas(Path);
ResS := TResourceStream.Create(hInstance, 'SOME_FONT', 'RT_FONT');
ResS.SavetoFile(TempDir+'some_font.ttf');
ResS.Free;
AddFontResource(TempDir+'some_font.ttf');
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
ProtectFile(TempDir+'some_font.ttf');
end;
myadvice 2003-08-23
  • 打赏
  • 举报
回复
用一个安装程序制作工具作成一个安装程序,如install shield等,
lxpbuaa 2003-08-23
  • 打赏
  • 举报
回复
静态联遍dll就可以了

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
hzdsxu 2003-08-23
  • 打赏
  • 举报
回复
我检查过了, 没有Q开头的单元啊,忧闷
寂寞沙洲 2003-08-23
  • 打赏
  • 举报
回复
如果你不是跨平台的应用程序,不需要用qtintf70.dll。好好检查一下,把单元文件中引用的以
Q开头的单元去掉,例如把QDialogs改成Dialogs。
hzdsxu 2003-08-23
  • 打赏
  • 举报
回复
"静态联遍dll就可以了"

静态连接怎么连呀,在 project->options 怎么选,



5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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