返回信息流## 问题描述如下:
MFC中的单文档single document模型中,视图基类是CHtmlView
这样通过以下代码就可以打开项目所在的当前文件夹下的一个静态的.html文件
```C\C++
char * buffer;
buffer = getcwd(NULL, 0);
CString html_name = "\\index.html";
CString html_path = buffer + html_name;
Navigate2(_T(html_path),NULL,NULL);
```
这样做很简单,编译运行就可以正常显示。
但是以后打包成EXE之后,不能一直把这个静态的.html文件一直放在项目工程文件夹里吧?
需要放在外面,以后修改index.html和里面的JS CSS等,直接修改,和MFC程序无关
那这个路径怎么办?相对路径改成绝对路径?
比如直接改成Navigate2(_T(’C:\index.html‘),NULL,NULL);
这样吗?
有没有其他的什么思路?
在本地不起服务器,也没有远程服务器的情况下。
初学,不知问题描述清不清楚,请各位大神指教!
这是一条镜像帖。来源:北邮人论坛 / cpp / #95584同步于 2017/6/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
MFC中打开HTML网页资源路径问题
arence
2017/6/12镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
写个配置文件,把可变路径写到配置文件里,程序读取配置组装完整路径:
FILE* fp = fopen("path.dat", "rb");
char* buffer = malloc(1024);
int count = fread(buffer, sizeof(char), 1023, fp);
buffer[count] = '\0';
printf(buffer);
另外在MFC里要格外小心字符编码,CString并非一直表示单字节字符。
【 在 arence 的大作中提到: 】
: [md]
: ## 问题描述如下:
: MFC中的单文档single document模型中,视图基类是CHtmlView
: ...................
多谢~ 我试试~
【 在 tonyjansan 的大作中提到: 】
: 写个配置文件,把可变路径写到配置文件里,程序读取配置组装完整路径:
: [code=c]
: FILE* fp = fopen("path.dat", "rb");
: ...................
再请教下~你这个方法的话,不一定要使用什么.dat吧
单纯些个.txt直接读取也是一样的?
另外,这样的话这个配置文件还是在项目文件夹里,这样编译打包之后,这个文件也是无法修改的,是这样吗?
【 在 tonyjansan 的大作中提到: 】
: 写个配置文件,把可变路径写到配置文件里,程序读取配置组装完整路径:
: [code=c]
: FILE* fp = fopen("path.dat", "rb");
: ...................
文件扩展名只是一个标识,程序读写文件的方式在于open mode参数,对于fopen来说,要看第二个参数是"rb"还是"r",不过对于你的这个需求来说两者差别不大。
第二个问题没太理解你的需求,编译打包是指什么?做成了setup包,还是指输出执行文件。
另外如果你还想改配置文件是指什么,要改配置文件的内容,还是说改程序读配置文件的名字?
【 在 arence 的大作中提到: 】
: 再请教下~你这个方法的话,不一定要使用什么.dat吧
: 单纯些个.txt直接读取也是一样的?
: 另外,这样的话这个配置文件还是在项目文件夹里,这样编译打包之后,这个文件也是无法修改的,是这样吗?
: ...................
打包就是稻城setup包,我现在改成写注册表的方式了。
把注册表当配置文件。这样就可以脱离程序,而是通过直接改注册表的方式从而让程序读注册表里的内容了。
【 在 tonyjansan 的大作中提到: 】
: 文件扩展名只是一个标识,程序读写文件的方式在于open mode参数,对于fopen来说,要看第二个参数是"rb"还是"r",不过对于你的这个需求来说两者差别不大。
: 第二个问题没太理解你的需求,编译打包是指什么?做成了setup包,还是指输出执行文件。
: 另外如果你还想改配置文件是指什么,要改配置文件的内容,还是说改程序读配置文件的名字?
: ...................