我正在为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?

最佳答案

对于串联,请使用StringCchCat

TCHAR pszDest[260] = _T("");
StringCchCat(pszDest, 260, pszInstallDir);
StringCchCat(pszDest, 260, _T("\\MyApp.exe"));
LaunchApp(pszDest);

关于c++ - C++ concat LPCTSTR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5235647/

10-09 05:22