本方法理论上也适用于其他的C和C++程序
对于windows资源文件中的 图标、位图和对话框,按照wxWidgets和技巧一中的问题已经解决,这里介绍如何直接将一个文件编写进入exe。
其实方法就是将文件转换成char数组。
举个例子,比如一个小程序,你要使用word,你可以使用3种方法:
1、先调用word,然后用代码调用com在word中生成想要的格式,很麻烦,不建议使用
2、先做好一个word模板,定义书签,然后调用com,替换书签内容,这种比较方便,而且实现了视图和数据、模型的分离,但是由于word版本的问题,可能出现不兼容。
3、使用rtf。做一个word文件,定义好标志词组,比如$(var)保,存成rtf格式。由于rtf是文本格式,直接使用txt的读取方式或者直接编译进exe中。这就涉及到了资源文件中的自定义。
我说一下第3种,很简单,把rtf转换成 static char 数组,然后变成头文件,使用wxString.FromUTF8转化为字符串,替换掉标志词组,写入文件。
这只是一个思路,如果你能解决文件格式的读取问题,你可以随意定义文件的数组格式。
对于文本类这种方法很好用。具体到生成 static char 数组,我使用的 python ,也可以使用其他的方法。
with open("dddd.txt",'rb') as file:
temp=[]
ch=file.read(1)
while len(ch)!=0:
temp+=ch
ch=file.read(1)
with open('test.txt','w') as file:
file.write(str(temp))
很简单。
分享一下,如果还有好办法请告诉我。
对于windows资源文件中的 图标、位图和对话框,按照wxWidgets和技巧一中的问题已经解决,这里介绍如何直接将一个文件编写进入exe。
其实方法就是将文件转换成char数组。
举个例子,比如一个小程序,你要使用word,你可以使用3种方法:
1、先调用word,然后用代码调用com在word中生成想要的格式,很麻烦,不建议使用
2、先做好一个word模板,定义书签,然后调用com,替换书签内容,这种比较方便,而且实现了视图和数据、模型的分离,但是由于word版本的问题,可能出现不兼容。
3、使用rtf。做一个word文件,定义好标志词组,比如$(var)保,存成rtf格式。由于rtf是文本格式,直接使用txt的读取方式或者直接编译进exe中。这就涉及到了资源文件中的自定义。
我说一下第3种,很简单,把rtf转换成 static char 数组,然后变成头文件,使用wxString.FromUTF8转化为字符串,替换掉标志词组,写入文件。
这只是一个思路,如果你能解决文件格式的读取问题,你可以随意定义文件的数组格式。
对于文本类这种方法很好用。具体到生成 static char 数组,我使用的 python ,也可以使用其他的方法。
with open("dddd.txt",'rb') as file:
temp=[]
ch=file.read(1)
while len(ch)!=0:
temp+=ch
ch=file.read(1)
with open('test.txt','w') as file:
file.write(str(temp))
很简单。
分享一下,如果还有好办法请告诉我。
