From 45d775174d5288d438ad741eee344e46031d1840 Mon Sep 17 00:00:00 2001 From: mingkuang Date: Fri, 14 Jun 2024 00:27:42 +0800 Subject: [PATCH] =?UTF-8?q?Bug=20#97,=E8=A7=A3=E5=86=B3obj=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=94SDK=E4=BD=8E=E4=BA=8E10=E6=97=B6=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/Build&Test.yml | 8 +- .gitignore | 2 + ThunksList.md | 2 - src/Thunks/YY_Thunks.cpp | 3 + src/Thunks/api-ms-win-core-path.hpp | 2 +- src/Thunks/api-ms-win-core-winrt.hpp | 9 +- src/Thunks/bcrypt.hpp | 2 +- src/Thunks/bluetoothapis.hpp | 5 - src/Thunks/mfplat.hpp | 5 - src/Thunks/netapi32.hpp | 5 - src/Thunks/powrprof.hpp | 5 - src/Thunks/shcore.hpp | 6 +- src/Thunks/shell32.hpp | 14 +- src/Thunks/user32.hpp | 7 +- src/Thunks/userenv.hpp | 5 - .../Example/SymbolBuildTest.vcxproj | 9 +- src/YY-Thunks.UnitTest/YY-Thunks.UnitTest.cpp | 155 ++++++++++++++++-- src/def/x64/esent.def | 3 - src/def/x86/esent.def | 3 - 19 files changed, 192 insertions(+), 58 deletions(-) diff --git a/.github/workflows/Build&Test.yml b/.github/workflows/Build&Test.yml index 28be7899..4f2069f5 100644 --- a/.github/workflows/Build&Test.yml +++ b/.github/workflows/Build&Test.yml @@ -17,7 +17,9 @@ jobs: # Procdump工具,用于单元测试崩溃诊断 Invoke-WebRequest -Uri https://download.sysinternals.com/files/Procdump.zip -OutFile Bin\Procdump.zip &7z e Bin\Procdump.zip "-o$Env:GITHUB_WORKSPACE\Bin" - + + Invoke-WebRequest -Uri https://github.com/mingkuang-Chuyu/Visual_Studio_Platform_Toolset/releases/download/v1.0.2/Visual.Studio.2008.Platform.Toolset.v1.0.2.7z -OutFile Bin\Visual.Studio.2008.Platform.Toolset.v1.0.2.7z + &7z x Bin\Visual.Studio.2008.Platform.Toolset.v1.0.2.7z "-o$Env:GITHUB_WORKSPACE\Bin" Invoke-WebRequest -Uri https://github.com/Chuyu-Team/LibMaker/releases/download/v1.0.3/LibMaker.exe -OutFile Bin\LibMaker.exe Invoke-WebRequest -Uri https://github.com/Chuyu-Team/YY-Thunks/releases/download/v1.0.2.8/MinimumRequiredVersionHelper.exe -OutFile Bin\MinimumRequiredVersionHelper.exe @@ -118,6 +120,8 @@ jobs: # MSBuild、PROCDUMP_PATH目录更新到 Path $Env:Path="$Env:GITHUB_WORKSPACE\Bin;${{env.MSBuildBinPath}};${{env.LatestVisualStudioRoot}}\Common7\IDE\CommonExtensions\Microsoft\TestWindow;" + $Env:Path + $Env:WindowsSdkDir_60A_TestPath="$Env:GITHUB_WORKSPACE\Bin\Program Files\Microsoft SDKs\Windows\v6.0A" + # 编译单元测试项目 &msbuild src\YY-Thunks.UnitTest\YY-Thunks.UnitTest.vcxproj "-p:Configuration=Release;Platform=Win32;SolutionDir=$Env:GITHUB_WORKSPACE\src\\" if($lastexitcode -ne 0) @@ -195,6 +199,8 @@ jobs: src\x64\Release\YY-Thunks.UnitTest.dll src\x64\Release\YY-Thunks.UnitTest.pdb src\x64\Release\*.log + src\YY-Thunks.UnitTest\TestProject\Example\Win32\Static + src\YY-Thunks.UnitTest\TestProject\Example\x64\Static - uses: xresloader/upload-to-github-release@v1 env: diff --git a/.gitignore b/.gitignore index c9361040..18bc6711 100644 --- a/.gitignore +++ b/.gitignore @@ -355,3 +355,5 @@ MigrationBackup/ /src/Thunks/YY_Thunks_List.hpp /objs /Lib +/src/YY-Thunks.UnitTest/TestProject/Example/Win32/Static +/src/YY-Thunks.UnitTest/TestProject/Example/x64/Static diff --git a/ThunksList.md b/ThunksList.md index e10cd1d1..d77bc4c3 100644 --- a/ThunksList.md +++ b/ThunksList.md @@ -225,7 +225,6 @@ | JetAttachDatabaseWithStreamingA | 调用JetAttachDatabaseWithStreaming。 | JetBackupA | 调用JetBackup。 | JetBackupInstanceA | 调用JetBackupInstance。 -| JetBeginDatabaseIncrementalReseedA | 调用JetBeginDatabaseIncrementalReseed。 | JetBeginSessionA | 调用JetBeginSession。 | JetCompactA | 调用JetCompact。 | JetConvertDDLA | 调用JetConvertDDL。 @@ -269,7 +268,6 @@ | JetGetTableInfoA | 调用JetGetTableInfo。 | JetGetTruncateLogInfoInstanceA | 调用JetGetTruncateLogInfoInstance。 | JetInit3A | 调用JetInit3。 -| JetInit4A | 调用JetInit4。 | JetOpenDatabaseA | 调用JetOpenDatabase。 | JetOpenFileA | 调用JetOpenFile。 | JetOpenFileInstanceA | 调用JetOpenFileInstance。 diff --git a/src/Thunks/YY_Thunks.cpp b/src/Thunks/YY_Thunks.cpp index b44c6d71..65a41ca1 100644 --- a/src/Thunks/YY_Thunks.cpp +++ b/src/Thunks/YY_Thunks.cpp @@ -188,6 +188,9 @@ RtlCutoverTimeToSystemTime( #ifndef __FALLBACK_PREFIX #define __FALLBACK_PREFIX +#define __YY_Thunks_libs 0 +#else +#define __YY_Thunks_libs 1 #endif //展开函数的所有的 声明 以及 try_get_ 函数 diff --git a/src/Thunks/api-ms-win-core-path.hpp b/src/Thunks/api-ms-win-core-path.hpp index 86ecd140..a26715a6 100644 --- a/src/Thunks/api-ms-win-core-path.hpp +++ b/src/Thunks/api-ms-win-core-path.hpp @@ -2,7 +2,7 @@ #define PATHCCH_NO_DEPRECATE #include -#if (YY_Thunks_Support_Version < NTDDI_WIN8) && !defined(__Comment_Lib_pathcch) +#if (YY_Thunks_Support_Version < NTDDI_WIN8) && __YY_Thunks_libs && !defined(__Comment_Lib_pathcch) #define __Comment_Lib_pathcch #pragma comment(lib, "Pathcch.lib") #endif diff --git a/src/Thunks/api-ms-win-core-winrt.hpp b/src/Thunks/api-ms-win-core-winrt.hpp index 8bae1a9d..4767a5d1 100644 --- a/src/Thunks/api-ms-win-core-winrt.hpp +++ b/src/Thunks/api-ms-win-core-winrt.hpp @@ -1,4 +1,11 @@ -#include +#if (YY_Thunks_Support_Version < NTDDI_WIN8) +#include +#endif + +#if (YY_Thunks_Support_Version < NTDDI_WIN8) && !defined(__Comment_Lib_ole32) +#define __Comment_Lib_ole32 +#pragma comment(lib, "Ole32.lib") +#endif namespace YY::Thunks { diff --git a/src/Thunks/bcrypt.hpp b/src/Thunks/bcrypt.hpp index e351ff8d..5b00cc75 100644 --- a/src/Thunks/bcrypt.hpp +++ b/src/Thunks/bcrypt.hpp @@ -8,7 +8,7 @@ #pragma comment(lib, "Advapi32.lib") #endif -#if (YY_Thunks_Support_Version < NTDDI_WIN7) && !defined(__Comment_Lib_bcrypt) +#if (YY_Thunks_Support_Version < NTDDI_WIN7) && (YY_Thunks_Support_Version >= NTDDI_WIN6 || __YY_Thunks_libs) && !defined(__Comment_Lib_bcrypt) #define __Comment_Lib_bcrypt #pragma comment(lib, "bcrypt.lib") #endif diff --git a/src/Thunks/bluetoothapis.hpp b/src/Thunks/bluetoothapis.hpp index 7cc5cc25..c45ba12c 100644 --- a/src/Thunks/bluetoothapis.hpp +++ b/src/Thunks/bluetoothapis.hpp @@ -2,11 +2,6 @@ #include #endif -#if (YY_Thunks_Support_Version < NTDDI_WIN8) && !defined(__Comment_Lib_bluetoothapis) -#define __Comment_Lib_bluetoothapis -#pragma comment(lib, "BluetoothAPIs.lib") -#endif - namespace YY::Thunks { #if (YY_Thunks_Support_Version < NTDDI_WIN8) diff --git a/src/Thunks/mfplat.hpp b/src/Thunks/mfplat.hpp index a3127314..c981bd81 100644 --- a/src/Thunks/mfplat.hpp +++ b/src/Thunks/mfplat.hpp @@ -2,11 +2,6 @@ #include #endif -#if (YY_Thunks_Support_Version < NTDDI_WIN8) && !defined(__Comment_Lib_mfplat) -#define __Comment_Lib_mfplat -#pragma comment(lib, "Mfplat.lib") -#endif - namespace YY::Thunks { #if (YY_Thunks_Support_Version < NTDDI_WIN8) diff --git a/src/Thunks/netapi32.hpp b/src/Thunks/netapi32.hpp index 974f2bb3..978dfb13 100644 --- a/src/Thunks/netapi32.hpp +++ b/src/Thunks/netapi32.hpp @@ -2,11 +2,6 @@ #include #endif -#if (YY_Thunks_Support_Version < NTDDI_WIN10) && !defined(__Comment_Lib_netapi32) -#define __Comment_Lib_netapi32 -#pragma comment(lib, "Netapi32.lib") -#endif - namespace YY::Thunks { #if (YY_Thunks_Support_Version < NTDDI_WIN10) diff --git a/src/Thunks/powrprof.hpp b/src/Thunks/powrprof.hpp index 2c528f0c..2f99da6f 100644 --- a/src/Thunks/powrprof.hpp +++ b/src/Thunks/powrprof.hpp @@ -2,11 +2,6 @@ #include #endif -#if (YY_Thunks_Support_Version < NTDDI_VISTA) && !defined(__Comment_Lib_powrProf) -#define __Comment_Lib_powrProf -#pragma comment(lib, "PowrProf.lib") -#endif - namespace YY::Thunks { #if (YY_Thunks_Support_Version < NTDDI_VISTA) diff --git a/src/Thunks/shcore.hpp b/src/Thunks/shcore.hpp index 61a83d5a..0a2aac6d 100644 --- a/src/Thunks/shcore.hpp +++ b/src/Thunks/shcore.hpp @@ -2,9 +2,9 @@ #include #endif -#if (YY_Thunks_Support_Version < NTDDI_WINBLUE) && !defined(__Comment_Lib_shcore) -#define __Comment_Lib_shcore -#pragma comment(lib, "Shcore.lib") +#if (YY_Thunks_Support_Version < NTDDI_WINBLUE) && !defined(__Comment_Lib_user32) +#define __Comment_Lib_user32 +#pragma comment(lib, "User32.lib") #endif namespace YY::Thunks diff --git a/src/Thunks/shell32.hpp b/src/Thunks/shell32.hpp index 6e00b81d..f43c2800 100644 --- a/src/Thunks/shell32.hpp +++ b/src/Thunks/shell32.hpp @@ -1,5 +1,17 @@ -#include +#if (YY_Thunks_Support_Version < NTDDI_WIN7) +#include #include +#endif + +#if (YY_Thunks_Support_Version < NTDDI_WIN6) && !defined(__Comment_Lib_shell32) +#define __Comment_Lib_shell32 +#pragma comment(lib, "Shell32.lib") +#endif + +#if (YY_Thunks_Support_Version < NTDDI_WIN6) && !defined(__Comment_Lib_ole32) +#define __Comment_Lib_ole32 +#pragma comment(lib, "Ole32.lib") +#endif namespace YY::Thunks { diff --git a/src/Thunks/user32.hpp b/src/Thunks/user32.hpp index c432765e..c87a5307 100644 --- a/src/Thunks/user32.hpp +++ b/src/Thunks/user32.hpp @@ -7,11 +7,16 @@ #pragma comment(lib, "User32.lib") #endif -#if (YY_Thunks_Support_Version < NTDDI_WIN10_RS2) && !defined(__Comment_Lib_shcore) +#if (YY_Thunks_Support_Version < NTDDI_WIN10_RS2) && (YY_Thunks_Support_Version >= NTDDI_WINBLUE || __YY_Thunks_libs) && !defined(__Comment_Lib_shcore) #define __Comment_Lib_shcore #pragma comment(lib, "Shcore.lib") #endif +#if (YY_Thunks_Support_Version < NTDDI_WIN10_RS1) && !defined(__Comment_Lib_gdi32) +#define __Comment_Lib_gdi32 +#pragma comment(lib, "Gdi32.lib") +#endif + #if defined(YY_Thunks_Implemented) namespace YY::Thunks::internal { diff --git a/src/Thunks/userenv.hpp b/src/Thunks/userenv.hpp index a4d38208..0cb06b5b 100644 --- a/src/Thunks/userenv.hpp +++ b/src/Thunks/userenv.hpp @@ -2,11 +2,6 @@ #include #endif -#if (YY_Thunks_Support_Version < NTDDI_WIN8) && !defined(__Comment_Lib_userenv) -#define __Comment_Lib_userenv -#pragma comment(lib, "Userenv.lib") -#endif - namespace YY::Thunks { #if (YY_Thunks_Support_Version < NTDDI_WIN8) diff --git a/src/YY-Thunks.UnitTest/TestProject/Example/SymbolBuildTest.vcxproj b/src/YY-Thunks.UnitTest/TestProject/Example/SymbolBuildTest.vcxproj index 486b35aa..a519823b 100644 --- a/src/YY-Thunks.UnitTest/TestProject/Example/SymbolBuildTest.vcxproj +++ b/src/YY-Thunks.UnitTest/TestProject/Example/SymbolBuildTest.vcxproj @@ -48,11 +48,15 @@ false $(SymbolsTestCppRootPathTmp) $(SymbolsTestCppRootPathTmp) + $(VC_LibraryPath_x86);$(WindowsSdkDir_60A)\lib + $(YY_Thunks_Libs);$(LibraryPath) false $(SymbolsTestCppRootPathTmp) $(SymbolsTestCppRootPathTmp) + $(VC_LibraryPath_x64);$(WindowsSdkDir_60A)\lib\x64 + $(YY_Thunks_Libs);$(LibraryPath) @@ -68,7 +72,7 @@ Console true true - $(YY_Thunks_File_Path) + $(YY_Thunks_File_Path) @@ -85,7 +89,8 @@ Console true true - $(YY_Thunks_File_Path) + $(YY_Thunks_File_Path) + LinkVerboseLib diff --git a/src/YY-Thunks.UnitTest/YY-Thunks.UnitTest.cpp b/src/YY-Thunks.UnitTest/YY-Thunks.UnitTest.cpp index b1a5c92d..f9d682e0 100644 --- a/src/YY-Thunks.UnitTest/YY-Thunks.UnitTest.cpp +++ b/src/YY-Thunks.UnitTest/YY-Thunks.UnitTest.cpp @@ -127,30 +127,34 @@ LSTATUS CreateFileByData(LPCWSTR FilePath, const void* Data, DWORD ccbData) CString RunMSBuildTest( LPCWSTR szPlatform, LPCWSTR szConfiguration, - CStringW szYY_ThunksFilePath, + CStringW szSymbolsTestCppRootPath, LPCWSTR BuildProperty = nullptr ) { - CStringW szSymbolsTestCppRootPath; - szSymbolsTestCppRootPath.Format(SymbolBuildTestPath L"Example\\%s\\%s\\%s", szPlatform, szConfiguration, PathFindFileNameW(szYY_ThunksFilePath)); + if (szSymbolsTestCppRootPath.IsEmpty()) + return CString(); + + if (szSymbolsTestCppRootPath[szSymbolsTestCppRootPath.GetLength() - 1] != L'\\') + szSymbolsTestCppRootPath += L'\\'; CString Cmd; - Cmd.Format(L"\"%s\" \"%s\" -t:Rebuild \"-p:Configuration=%s;Platform=%s;YY_Thunks_File_Path=%s;SymbolsTestCppRootPath=%s\\\"", + Cmd.Format(L"\"%s\" \"%s\" -t:Rebuild \"-p:Configuration=%s;Platform=%s;SymbolsTestCppRootPath=%s", MSBuildBinPath LR"(MSBuild.exe)", SymbolBuildTestPath LR"(Example\SymbolBuildTest.vcxproj)", szConfiguration, szPlatform, - szYY_ThunksFilePath.GetString(), szSymbolsTestCppRootPath.GetString()); - if (BuildProperty) + if (BuildProperty && *BuildProperty) { - Cmd.ReleaseBufferSetLength(Cmd.GetLength() - 1); Cmd += L';'; Cmd += BuildProperty; } + if (Cmd[Cmd.GetLength() - 1] == L'\\') + Cmd += L'\\'; + Cmd += L'\"'; CString OutString; auto lStatus = RunCmd(nullptr, Cmd, &OutString, CStringW()); @@ -547,15 +551,138 @@ namespace Others } while (false); } + }; - TEST_METHOD(可链接性检测) + TEST_CLASS(可链接性检测) + { + public: + TEST_METHOD(obj模式可链接性) { - RunMSBuildTest(L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Win2K.obj"); - RunMSBuildTest(L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_WinXP.obj"); - RunMSBuildTest(L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Vista.obj"); + struct TestInfo + { + LPCWSTR szPlatform; + LPCWSTR szConfiguration; + LPCWSTR szYY_ThunksFilePath; + }; + + static const TestInfo s_TestInfo[] = + { + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Win2K.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_WinXP.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Vista.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Win7.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Win8.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Win10.0.10240.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Win10.0.19041.obj"}, + + {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_WinXP.obj"}, + {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_Vista.obj"}, + {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_Win7.obj"}, + {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_Win8.obj"}, + {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_Win10.0.10240.obj"}, + {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_Win10.0.19041.obj"}, + }; + + + for (auto& _TestInfo : s_TestInfo) + { + CStringW _szSymbolsTestCppRootPath; + _szSymbolsTestCppRootPath.Format(SymbolBuildTestPath L"Example\\%s\\%s\\%s\\", _TestInfo.szPlatform, _TestInfo.szConfiguration, PathFindFileNameW(_TestInfo.szYY_ThunksFilePath)); + + CStringW _szBuildProperty = L"YY_Thunks_File_Path="; + _szBuildProperty += _TestInfo.szYY_ThunksFilePath; + + RunMSBuildTest(_TestInfo.szPlatform, _TestInfo.szConfiguration, _szSymbolsTestCppRootPath, _szBuildProperty); + } + } - RunMSBuildTest(L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_WinXP.obj"); - RunMSBuildTest(L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_Vista.obj"); + TEST_METHOD(lib模式可链接性) + { + struct TestInfo + { + LPCWSTR szPlatform; + LPCWSTR szConfiguration; + LPCWSTR szTargetVersion; + }; + + static const TestInfo s_TestInfo[] = + { + {L"Win32", L"Static", L"5.0.2195.0"}, + {L"Win32", L"Static", L"5.1.2600.0"}, + {L"Win32", L"Static", L"6.0.6000.0"}, + {L"Win32", L"Static", L"6.1.7600.0"}, + {L"Win32", L"Static", L"6.2.9200.0"}, + {L"Win32", L"Static", L"10.0.10240.0"}, + {L"Win32", L"Static", L"10.0.19041.0"}, + + {L"x64", L"Static", L"5.2.3790.1180"}, + {L"x64", L"Static", L"6.0.6000.0"}, + {L"x64", L"Static", L"6.1.7600.0"}, + {L"x64", L"Static", L"6.2.9200.0"}, + {L"x64", L"Static", L"10.0.10240.0"}, + {L"x64", L"Static", L"10.0.19041.0"}, + }; + + + for (auto& _TestInfo : s_TestInfo) + { + CStringW szSymbolsTestCppRootPath; + szSymbolsTestCppRootPath.Format(SymbolBuildTestPath L"Example\\%s\\%s\\%s\\", _TestInfo.szPlatform, _TestInfo.szConfiguration, _TestInfo.szTargetVersion); + + CStringW _szBuildProperty = L"YY_Thunks_Libs="; + _szBuildProperty.AppendFormat(YY_ThunksRootPath L"Lib\\%s\\", _TestInfo.szTargetVersion); + + if (_wcsicmp(_TestInfo.szPlatform, L"Win32") == 0) + { + _szBuildProperty += L"x86"; + } + else + { + _szBuildProperty += _TestInfo.szPlatform; + } + + RunMSBuildTest(_TestInfo.szPlatform, _TestInfo.szConfiguration, szSymbolsTestCppRootPath, _szBuildProperty); + } } - }; + + TEST_METHOD(SDK6可链接性) + { + struct TestInfo + { + LPCWSTR szPlatform; + LPCWSTR szConfiguration; + LPCWSTR szYY_ThunksFilePath; + }; + + static const TestInfo s_TestInfo[] = + { + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Win2K.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_WinXP.obj"}, + {L"Win32", L"Static", YY_ThunksRootPath L"objs\\x86\\YY_Thunks_for_Vista.obj"}, + + // 打包的SDK6有点问题,缺了很多场景的lib,暂时x64先不管了,懒得再找SDK了。 + // {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_WinXP.obj"}, + // {L"x64", L"Static", YY_ThunksRootPath L"objs\\x64\\YY_Thunks_for_Vista.obj"}, + }; + + wchar_t _szWindowsSdkDir_60A[MAX_PATH]; + auto _uResult = GetEnvironmentVariableW(L"WindowsSdkDir_60A_TestPath", _szWindowsSdkDir_60A, _countof(_szWindowsSdkDir_60A)); + if (_uResult && _uResult < _countof(_szWindowsSdkDir_60A)) + { + for (auto& _TestInfo : s_TestInfo) + { + CStringW szSymbolsTestCppRootPath; + szSymbolsTestCppRootPath.Format(SymbolBuildTestPath L"Example\\%s\\%s\\%s_SDK6\\", _TestInfo.szPlatform, _TestInfo.szConfiguration, PathFindFileNameW(_TestInfo.szYY_ThunksFilePath)); + + CStringW _szBuildProperty = L"YY_Thunks_File_Path="; + _szBuildProperty += _TestInfo.szYY_ThunksFilePath; + _szBuildProperty += L';'; + _szBuildProperty += L"WindowsSdkDir_60A="; + _szBuildProperty += _szWindowsSdkDir_60A; + + RunMSBuildTest(_TestInfo.szPlatform, _TestInfo.szConfiguration, szSymbolsTestCppRootPath, _szBuildProperty); + } + } + } + }; } diff --git a/src/def/x64/esent.def b/src/def/x64/esent.def index 16279740..22a7c941 100644 --- a/src/def/x64/esent.def +++ b/src/def/x64/esent.def @@ -7,7 +7,6 @@ JetAttachDatabase2A=JetAttachDatabase2 JetAttachDatabaseWithStreamingA=JetAttachDatabaseWithStreaming JetBackupA=JetBackup JetBackupInstanceA=JetBackupInstance -JetBeginDatabaseIncrementalReseedA=JetBeginDatabaseIncrementalReseed JetBeginSessionA=JetBeginSession JetCompactA=JetCompact JetConvertDDLA=JetConvertDDL @@ -51,11 +50,9 @@ JetGetTableIndexInfoA=JetGetTableIndexInfo JetGetTableInfoA=JetGetTableInfo JetGetTruncateLogInfoInstanceA=JetGetTruncateLogInfoInstance JetInit3A=JetInit3 -JetInit4A=JetInit4 JetOpenDatabaseA=JetOpenDatabase JetOpenFileA=JetOpenFile JetOpenFileInstanceA=JetOpenFileInstance -JetOpenFileSectionInstanceA=JetOpenFileSectionInstance JetOpenTableA=JetOpenTable JetOSSnapshotFreezeA=JetOSSnapshotFreeze JetRenameColumnA=JetRenameColumn diff --git a/src/def/x86/esent.def b/src/def/x86/esent.def index 1c3c9e4f..ec8573a4 100644 --- a/src/def/x86/esent.def +++ b/src/def/x86/esent.def @@ -7,7 +7,6 @@ JetAttachDatabase2A@16=JetAttachDatabase2@16 JetAttachDatabaseWithStreamingA@24=JetAttachDatabaseWithStreaming@24 JetBackupA@12=JetBackup@12 JetBackupInstanceA@16=JetBackupInstance@16 -JetBeginDatabaseIncrementalReseedA@16=JetBeginDatabaseIncrementalReseed@16 JetBeginSessionA@16=JetBeginSession@16 JetCompactA@24=JetCompact@24 JetConvertDDLA@20=JetConvertDDL@20 @@ -51,11 +50,9 @@ JetGetTableIndexInfoA@24=JetGetTableIndexInfo@24 JetGetTableInfoA@20=JetGetTableInfo@20 JetGetTruncateLogInfoInstanceA@16=JetGetTruncateLogInfoInstance@16 JetInit3A@12=JetInit3@12 -JetInit4A@12=JetInit4@12 JetOpenDatabaseA@20=JetOpenDatabase@20 JetOpenFileA@16=JetOpenFile@16 JetOpenFileInstanceA@20=JetOpenFileInstance@20 -JetOpenFileSectionInstanceA@36=JetOpenFileSectionInstance@36 JetOpenTableA@28=JetOpenTable@28 JetOSSnapshotFreezeA@16=JetOSSnapshotFreeze@16 JetRenameColumnA@20=JetRenameColumn@20