現在、C 文字列ヘッダーと C++ を使用していますが、問題が発生しました。私は長い道のりを持っています:
C:\bla\bla\bla\bla
関数が正しく読み取れるように、バックスラッシュを二重のバックスラッシュに変更する必要がありOS_CopyFile()
ますが、方法がわかりません。
次を使用してパスを取得します。
CHAR* szValueBuf = NULL;
DWORD cchValueBuf = 0;
UINT uiStat = MsiGetProperty(hInstall, TEXT("OriginalDatabase"), TEXT(""), &cchValueBuf);
if (ERROR_MORE_DATA == uiStat)
{
++cchValueBuf;
szValueBuf = new TCHAR[cchValueBuf];
if (szValueBuf)
{
uiStat = MsiGetProperty(hInstall, TEXT("OriginalDatabase"), szValueBuf, &cchValueBuf);
}
}
if (ERROR_SUCCESS != uiStat)
{
if (szValueBuf != NULL)
delete[] szValueBuf;
return ERROR_INSTALL_FAILURE;
}