Skip to content

Commit aea85ed

Browse files
committed
improve error handling and link msi.lib via pragma instead of project setting
git-svn-id: https://poroz/svnad/wfl_mr/branches/dev/jmairboe/trunk/src/tools/CreateEmbedLangTransform@8475 0d26eecb-4107-0410-bdd6-a17e8e2aa929
1 parent af67e25 commit aea85ed

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

CreateEmbedLangTransform/CreateEmbedLangTransform.vcxproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
<Link>
5959
<SubSystem>Console</SubSystem>
6060
<GenerateDebugInformation>true</GenerateDebugInformation>
61-
<AdditionalDependencies>msi.lib;%(AdditionalDependencies)</AdditionalDependencies>
6261
</Link>
6362
</ItemDefinitionGroup>
6463
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -75,7 +74,6 @@
7574
<EnableCOMDATFolding>true</EnableCOMDATFolding>
7675
<OptimizeReferences>true</OptimizeReferences>
7776
<GenerateDebugInformation>true</GenerateDebugInformation>
78-
<AdditionalDependencies>msi.lib;%(AdditionalDependencies)</AdditionalDependencies>
7977
</Link>
8078
</ItemDefinitionGroup>
8179
<ItemGroup>

CreateEmbedLangTransform/main.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,22 @@
33
#include <MsiQuery.h>
44
#include <iostream>
55

6+
#pragma comment(lib, "msi.lib")
7+
68
#ifdef _UNICODE
79
#define tcerr wcerr
810
#else
911
#define tcerr cerr
1012
#endif // _UNICODE
1113

14+
void HandleWindowsError(LPCTSTR func) {
15+
DWORD error = GetLastError();
16+
LPTSTR errorMessage;
17+
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), reinterpret_cast<LPTSTR>(&errorMessage), 0, NULL);
18+
std::tcerr << TEXT("error at ") << func << TEXT(": ") << errorMessage << std::endl;
19+
LocalFree(errorMessage);
20+
}
21+
1222
void HandleMsiError(LPCTSTR func) {
1323
PMSIHANDLE error = MsiGetLastErrorRecord();
1424
if (error) {
@@ -24,14 +34,9 @@ void HandleMsiError(LPCTSTR func) {
2434
delete[] errorMessage;
2535
}
2636
}
27-
}
28-
29-
void HandleWindowsError(LPCTSTR func) {
30-
DWORD error = GetLastError();
31-
LPTSTR errorMessage;
32-
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), reinterpret_cast<LPTSTR>(&errorMessage), 0, NULL);
33-
std::tcerr << TEXT("error at ") << func << TEXT(": ") << errorMessage << std::endl;
34-
LocalFree(errorMessage);
37+
else {
38+
HandleWindowsError(func);
39+
}
3540
}
3641

3742
int _tmain(int argc, TCHAR **argv) {

0 commit comments

Comments
 (0)