mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
libwinpr-path: make tests pass on Windows
This commit is contained in:
@@ -237,7 +237,11 @@ INCLUDE(CTest)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
enable_testing()
|
||||
set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Testing")
|
||||
if(MSVC)
|
||||
set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
|
||||
else()
|
||||
set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Testing")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# WinPR
|
||||
|
||||
@@ -38,7 +38,7 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
if(WITH_ALSA)
|
||||
add_subdirectory(alsa)
|
||||
|
||||
@@ -29,4 +29,4 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
MODULE freerdp
|
||||
MODULES freerdp-utils)
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL}/Server")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server")
|
||||
|
||||
@@ -42,4 +42,4 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
@@ -49,6 +49,6 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
|
||||
|
||||
@@ -38,5 +38,5 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
MODULE winpr
|
||||
MODULES winpr-synch)
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
|
||||
@@ -40,4 +40,4 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
@@ -60,4 +60,4 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
@@ -34,5 +34,5 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
|
||||
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
|
||||
@@ -43,4 +43,4 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
|
||||
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
@@ -32,7 +32,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
|
||||
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
if(WITH_ALSA)
|
||||
add_subdirectory(alsa)
|
||||
|
||||
@@ -31,4 +31,4 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
|
||||
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL}/Server")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server")
|
||||
|
||||
@@ -34,5 +34,5 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
|
||||
@@ -38,5 +38,5 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
|
||||
@@ -45,4 +45,4 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
@@ -51,7 +51,7 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
if(WITH_FFMPEG)
|
||||
add_subdirectory(ffmpeg)
|
||||
|
||||
@@ -51,4 +51,4 @@ if(NOT STATIC_CHANNELS)
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
|
||||
endif()
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client")
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
|
||||
|
||||
@@ -150,21 +150,21 @@ WINPR_API LONGLONG InterlockedCompareExchange64(LONGLONG volatile *Destination,
|
||||
|
||||
/* Doubly-Linked List */
|
||||
|
||||
VOID InitializeListHead(PLIST_ENTRY ListHead);
|
||||
WINPR_API VOID InitializeListHead(PLIST_ENTRY ListHead);
|
||||
|
||||
BOOL IsListEmpty(const LIST_ENTRY* ListHead);
|
||||
WINPR_API BOOL IsListEmpty(const LIST_ENTRY* ListHead);
|
||||
|
||||
BOOL RemoveEntryList(PLIST_ENTRY Entry);
|
||||
WINPR_API BOOL RemoveEntryList(PLIST_ENTRY Entry);
|
||||
|
||||
VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
|
||||
PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead);
|
||||
WINPR_API VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
|
||||
WINPR_API PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead);
|
||||
|
||||
VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
|
||||
PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead);
|
||||
VOID AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend);
|
||||
WINPR_API VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
|
||||
WINPR_API PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead);
|
||||
WINPR_API VOID AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend);
|
||||
|
||||
VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry);
|
||||
PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead);
|
||||
WINPR_API VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry);
|
||||
WINPR_API PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead);
|
||||
|
||||
#endif /* WINPR_INTERLOCKED_H */
|
||||
|
||||
|
||||
@@ -28,9 +28,13 @@ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
|
||||
|
||||
set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME}Area")
|
||||
if(NOT MSVC)
|
||||
set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME}Area")
|
||||
else()
|
||||
set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${MODULE_NAME}Area")
|
||||
endif()
|
||||
|
||||
file(MAKE_DIRECTORY ${TEST_AREA})
|
||||
file(MAKE_DIRECTORY "${TEST_AREA}")
|
||||
file(WRITE "${TEST_AREA}/TestFile1" "TestFile1")
|
||||
file(WRITE "${TEST_AREA}/TestFile2" "TestFile2")
|
||||
file(WRITE "${TEST_AREA}/TestFile3" "TestFile3")
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
#include <winpr/tchar.h>
|
||||
#include <winpr/windows.h>
|
||||
|
||||
TCHAR testFile1[] = _T("TestFile1");
|
||||
TCHAR testFile2[] = _T("TestFile2");
|
||||
TCHAR testFile3[] = _T("TestFile3");
|
||||
static TCHAR testFile1[] = _T("TestFile1");
|
||||
static TCHAR testFile2[] = _T("TestFile2");
|
||||
static TCHAR testFile3[] = _T("TestFile3");
|
||||
|
||||
int TestFileFindFirstFile(int argc, char* argv[])
|
||||
{
|
||||
@@ -34,6 +34,7 @@ int TestFileFindFirstFile(int argc, char* argv[])
|
||||
CopyMemory(FilePath, BasePath, length * sizeof(TCHAR));
|
||||
FilePath[length] = 0;
|
||||
|
||||
PathCchConvertStyle(BasePath, length, PATH_STYLE_WINDOWS);
|
||||
NativePathCchAppend(FilePath, PATHCCH_MAX_CCH, _T("TestFile1"));
|
||||
|
||||
_tprintf(_T("Finding file: %s\n"), FilePath);
|
||||
@@ -48,14 +49,12 @@ int TestFileFindFirstFile(int argc, char* argv[])
|
||||
|
||||
_tprintf(_T("FindFirstFile: %s"), FindData.cFileName);
|
||||
|
||||
#if 0
|
||||
if (_tcscmp(FindData.cFileName, testFile1) != 0)
|
||||
{
|
||||
_tprintf(_T("FindFirstFile failure: Expected: %d, Actual: %s\n"),
|
||||
testFile1, FindData.cFileName);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
FindClose(hFind);
|
||||
|
||||
|
||||
@@ -2,10 +2,88 @@
|
||||
#include <stdio.h>
|
||||
#include <winpr/crt.h>
|
||||
#include <winpr/file.h>
|
||||
#include <winpr/path.h>
|
||||
#include <winpr/tchar.h>
|
||||
#include <winpr/windows.h>
|
||||
|
||||
static TCHAR testDirectory2File1[] = _T("TestDirectory2File1");
|
||||
static TCHAR testDirectory2File2[] = _T("TestDirectory2File2");
|
||||
|
||||
int TestFileFindNextFile(int argc, char* argv[])
|
||||
{
|
||||
char* str;
|
||||
int length;
|
||||
BOOL status;
|
||||
HANDLE hFind;
|
||||
LPTSTR BasePath;
|
||||
WIN32_FIND_DATA FindData;
|
||||
TCHAR FilePath[PATHCCH_MAX_CCH];
|
||||
|
||||
str = argv[1];
|
||||
|
||||
#ifdef UNICODE
|
||||
length = MultiByteToWideChar(CP_UTF8, 0, str, strlen(str), NULL, 0);
|
||||
BasePath = (WCHAR*) malloc((length + 1) * sizeof(WCHAR));
|
||||
MultiByteToWideChar(CP_UTF8, 0, str, length, (LPWSTR) BasePath, length * sizeof(WCHAR));
|
||||
BasePath[length] = 0;
|
||||
#else
|
||||
BasePath = _strdup(str);
|
||||
length = strlen(BasePath);
|
||||
#endif
|
||||
|
||||
/* Simple filter matching all files inside current directory */
|
||||
|
||||
CopyMemory(FilePath, BasePath, length * sizeof(TCHAR));
|
||||
FilePath[length] = 0;
|
||||
|
||||
PathCchConvertStyle(BasePath, length, PATH_STYLE_WINDOWS);
|
||||
NativePathCchAppend(FilePath, PATHCCH_MAX_CCH, _T("TestDirectory2"));
|
||||
NativePathCchAppend(FilePath, PATHCCH_MAX_CCH, _T("TestDirectory2File*"));
|
||||
|
||||
_tprintf(_T("Finding file: %s\n"), FilePath);
|
||||
|
||||
hFind = FindFirstFile(FilePath, &FindData);
|
||||
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
_tprintf(_T("FindFirstFile failure: %s\n"), FilePath);
|
||||
return -1;
|
||||
}
|
||||
|
||||
_tprintf(_T("FindFirstFile: %s"), FindData.cFileName);
|
||||
|
||||
if (_tcscmp(FindData.cFileName, testDirectory2File1) != 0)
|
||||
{
|
||||
_tprintf(_T("FindFirstFile failure: Expected: %d, Actual: %s\n"),
|
||||
testDirectory2File1, FindData.cFileName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
status = FindNextFile(hFind, &FindData);
|
||||
|
||||
if (!status)
|
||||
{
|
||||
_tprintf(_T("FindNextFile failure: Expected: TRUE, Actual: %d\n"), status);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (_tcscmp(FindData.cFileName, testDirectory2File2) != 0)
|
||||
{
|
||||
_tprintf(_T("FindNextFile failure: Expected: %d, Actual: %s\n"),
|
||||
testDirectory2File2, FindData.cFileName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
status = FindNextFile(hFind, &FindData);
|
||||
|
||||
if (status)
|
||||
{
|
||||
_tprintf(_T("FindNextFile failure: Expected: FALSE, Actual: %d\n"), status);
|
||||
return -1;
|
||||
}
|
||||
|
||||
FindClose(hFind);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
|
||||
|
||||
set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME}Area")
|
||||
set(TEST_AREA "${MODULE_NAME}Area")
|
||||
|
||||
foreach(test ${${MODULE_PREFIX}_TESTS})
|
||||
get_filename_component(TestName ${test} NAME_WE)
|
||||
|
||||
@@ -28,7 +28,6 @@ add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TEST_AREA}/${MODULE_NAME}")
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "${TEST_AREA}/${MODULE_NAME}/")
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test/Extra")
|
||||
|
||||
|
||||
@@ -28,6 +28,6 @@ add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TEST_AREA}/${MODULE_NAME}")
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "${TEST_AREA}/${MODULE_NAME}/")
|
||||
|
||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test/Extra")
|
||||
|
||||
@@ -28,6 +28,8 @@ int TestLibraryFreeLibrary(int argc, char* argv[])
|
||||
#endif
|
||||
|
||||
CopyMemory(LibraryPath, BasePath, length * sizeof(TCHAR));
|
||||
LibraryPath[length] = 0;
|
||||
|
||||
NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* subdirectory */
|
||||
NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* file name without extension */
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ int TestLibraryGetProcAddress(int argc, char* argv[])
|
||||
#endif
|
||||
|
||||
CopyMemory(LibraryPath, BasePath, length * sizeof(TCHAR));
|
||||
LibraryPath[length] = 0;
|
||||
|
||||
NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* subdirectory */
|
||||
NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* file name without extension */
|
||||
|
||||
@@ -49,7 +51,7 @@ int TestLibraryGetProcAddress(int argc, char* argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
pFunctionA = (TEST_AB_FN) GetProcAddress(library, _T("FunctionA"));
|
||||
pFunctionA = (TEST_AB_FN) GetProcAddress(library, "FunctionA");
|
||||
|
||||
if (!pFunctionA)
|
||||
{
|
||||
@@ -57,7 +59,7 @@ int TestLibraryGetProcAddress(int argc, char* argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
pFunctionB = (TEST_AB_FN) GetProcAddress(library, _T("FunctionB"));
|
||||
pFunctionB = (TEST_AB_FN) GetProcAddress(library, "FunctionB");
|
||||
|
||||
if (!pFunctionB)
|
||||
{
|
||||
|
||||
@@ -811,17 +811,17 @@ static const CHAR SharedLibraryExtensionDllA[] = "dll";
|
||||
static const CHAR SharedLibraryExtensionSoA[] = "so";
|
||||
static const CHAR SharedLibraryExtensionDylibA[] = "dylib";
|
||||
|
||||
static const WCHAR SharedLibraryExtensionDllW[] = { 'd','l','l' };
|
||||
static const WCHAR SharedLibraryExtensionSoW[] = { 's','o' };
|
||||
static const WCHAR SharedLibraryExtensionDylibW[] = { 'd','y','l','i','b' };
|
||||
static const WCHAR SharedLibraryExtensionDllW[] = { 'd','l','l','\0' };
|
||||
static const WCHAR SharedLibraryExtensionSoW[] = { 's','o','\0' };
|
||||
static const WCHAR SharedLibraryExtensionDylibW[] = { 'd','y','l','i','b','\0' };
|
||||
|
||||
static const CHAR SharedLibraryExtensionDotDllA[] = ".dll";
|
||||
static const CHAR SharedLibraryExtensionDotSoA[] = ".so";
|
||||
static const CHAR SharedLibraryExtensionDotDylibA[] = ".dylib";
|
||||
|
||||
static const WCHAR SharedLibraryExtensionDotDllW[] = { '.','d','l','l' };
|
||||
static const WCHAR SharedLibraryExtensionDotSoW[] = { '.','s','o' };
|
||||
static const WCHAR SharedLibraryExtensionDotDylibW[] = { '.','d','y','l','i','b' };
|
||||
static const WCHAR SharedLibraryExtensionDotDllW[] = { '.','d','l','l','\0' };
|
||||
static const WCHAR SharedLibraryExtensionDotSoW[] = { '.','s','o','\0' };
|
||||
static const WCHAR SharedLibraryExtensionDotDylibW[] = { '.','d','y','l','i','b','\0' };
|
||||
|
||||
PCSTR PathGetSharedLibraryExtensionA(unsigned long dwFlags)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user