【发布时间】:2011-07-11 06:36:48
【问题描述】:
我正在为 WindowsCE CAB 文件实现自定义操作,我需要连接 LPCTSTR 以获得 exe 的正确路径。
我的自定义操作接收 LPCTSTR 作为参数。
所以(伪代码):
extern "C" codeINSTALL_EXIT MYCUSTOMACTION_API Install_Exit(
HWND hwndParent,
LPCTSTR pszInstallDir,
WORD cFailedDirs,
WORD cFailedFiles,
WORD cFailedRegKeys,
WORD cFailedRegVals,
WORD cFailedShortcuts
)
{
if (FALSE == LaunchApp(pszInstallDir + "\\MyApp.exe"))
::MessageBox(hwndParent, L"Could not launch app!", L"Setup", MB_ICONINFORMATION );
return codeINSTALL_EXIT_DONE;
}
这是使用虚构的“+”运算符,我将在我的标准语言 C# 中使用它。
我在 C++ 方面的经验相对较少。为我的目的附加 LPCTSTR 的正确方法是什么? LaunchApp 方法使用此类型作为参数。
另外,如果我想在 MessageBox 中显示结果路径(用于调试目的),有没有一种快速转换为 LPCWSTR 的方法?
【问题讨论】:
-
即使编译器没有抱怨,您也可能不想添加指针。考虑在适当的情况下使用 C++ 对象,例如
std::string或std::wstring。 -
那是(伪代码),我使用 + 作为它在 C# 中的含义。我以为我很清楚,抱歉。
-
对于连接路径,您可以使用 shlwapi 库中的
PathCombine。不过,不确定它在 Windows CE 上是否可用。
标签: c++ string windows-ce lpcstr