Navigate()函数的URL参数可以设置为相对路径吗?
2016-12-14 22:33
302 查看
问题描述:
最近在编写MFC程序,用到了浏览器控件【Microsoft Web Browser】,通过浏览器对象的Navigate()函数设置显示html页面,将写好的文件放在程序目录下之后,想用相对路径来调用自己写的一个“geodemo.htm”文件,失败。原因:
首先你要搞懂什么是相对路径。相对路径就是相对本进程的当前活动目录,一般是在本进程的可执行文件的所在目录,程序安装在其他电脑之后,进程运行期间可以随意修改,所认不到路径。解决方案:
方案一:
通过计算先获取进程路径后,后面添加相对路径的地址。即通过GetModuleFileName()函数获取当前进程完整路径的函数:
DWORD WINAPI GetModuleFileName( _In_opt_ HMODULE hModule, _Out_ LPTSTR lpFilename, _In_ DWORD nSize);
HMODULE hModule 装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径;
LPTSTR lpFileName 是你存放返回的名字的内存块的指针,是一个输出参数;
DWORD nSize,装载到缓冲区lpFileName的最大值。
使用实例:
char wszPathName[256] = { 0 };
GetModuleFileName( 0, wszPathName, 256);
注意:此方法只能获取当前进程,如需要获取另外的进程路径,可以使用GetModuleFileNameEx函数。
方案二:
用IIS给个端口访问。我们在做CDHTMLDialog相关的时候,网页部分的内容,建议像网站一样,用IIS给个端口,绑定个目录,然后使用http协议去访问,这样就可以写相对路径了;通过IIS发布网站,给个端口,就可以用IP:端口/相对路径。
相关文章推荐
- 希望相对路径关于background-image:url()在样式表里设置后有不管用的办法
- 关于HyperLink的NavigateUrl属性的链接地址参数设置
- 在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完整的请求路径和请求所有参数列表,POST的需要getPa
- 这个函数可以辅助向现有URL 的末尾添加查询字符串参数
- js获取当前域名、Url、相对路径和参数以及指定参数
- 使用ResolveUrl设置相对路径
- 在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完整的请求路径和请求所有参数列表,POST的需要getPa
- url的拼接,可以预先设置参数
- 标签的page属性值可以是相对路径URL或者<%=表达式 %>,但同时只能存在其中一种
- js获取当前域名、Url、相对路径和参数
- 使用ResolveUrl设置相对路径
- js获取当前域名、Url、相对路径和参数
- 关于绝对路径、相对路径和URL
- 关于image中的imageUrl相对路径和绝对路径
- 移除Url参数的函数
- javascript设置分页 url参数为page
- ASP.NET2.0 TreeView使用时NavigateUrl如何传递参数或传值
- 移除Url参数的函数
- CustomError可以设置绝对路径
- C# url 路径转换 相对路径 转换为 绝对路径