ShellExecute(NULL, TEXT("open"), TEXT("report\index.html"), NULL, NULL, SW_SHOWNORMAL);以上是我的代码行,由于某些原因,我无法打开该文件。下面是我试过的所有台词。
ShellExecute(NULL, TEXT("open"), TEXT("report/index.html"), NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, L"open", L"report\index.html", NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, _T("open"), _T("report\index.html"), NULL, NULL, SW_SHOWNORMAL);下面是我所列的清单。
// Windows Header Files:
#include <windows.h>
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <Shellapi.h>我的文件结构如下所示:
Downloads/test/program.exe
Downloads/test/report/index.html这是第一次编写这段代码,我真的不知道什么时候该区分"/“和"\”。我认为我需要使用TEXT(),因为当我转到我的VS2010项目“属性”>“字符集”时,它写着:使用Unicode字符集。或者至少我认为我必须使用TEXT(),我真的不确定。
另外,我是否需要提供文件的完整路径,而不是假设它是从我的exe所在的位置旅行的呢?如果是这样的话,是否有一个快速而简单的函数调用来获得完整的目录路径?这只是我丢失的包含文件吗?
发布于 2014-01-03 22:22:20
如果要传递硬编码路径,则路径必须是Windows样式,带有反斜杠,当然反斜杠必须是两次才能转义它。
ShellExecute(NULL, TEXT("open"), TEXT("report\\index.html"), NULL, NULL, SW_SHOWNORMAL);如果您使用的不是完整路径,当然您必须确保从应用程序的当前工作目录中,路径实际上是可访问的。
https://stackoverflow.com/questions/20913750
复制相似问题