Blame winpr/libwinpr/library/test/TestLibraryLoadLibrary.c

Packit 1fb8d4
Packit 1fb8d4
#include <stdio.h>
Packit 1fb8d4
#include <winpr/crt.h>
Packit 1fb8d4
#include <winpr/path.h>
Packit 1fb8d4
#include <winpr/tchar.h>
Packit 1fb8d4
#include <winpr/windows.h>
Packit 1fb8d4
#include <winpr/library.h>
Packit 1fb8d4
Packit 1fb8d4
int TestLibraryLoadLibrary(int argc, char* argv[])
Packit 1fb8d4
{
Packit 1fb8d4
	HINSTANCE library;
Packit 1fb8d4
	LPCSTR SharedLibraryExtension;
Packit 1fb8d4
	CHAR LibraryPath[PATHCCH_MAX_CCH];
Packit 1fb8d4
	PCHAR p;
Packit 1fb8d4
Packit 1fb8d4
	if (!GetModuleFileNameA(NULL, LibraryPath, PATHCCH_MAX_CCH))
Packit 1fb8d4
	{
Packit 1fb8d4
		printf("%s: GetModuleFilenameA failed: 0x%08"PRIX32"\n", __FUNCTION__, GetLastError());
Packit 1fb8d4
		return -1;
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	/* PathCchRemoveFileSpec is not implemented in WinPR */
Packit 1fb8d4
Packit 1fb8d4
	if (!(p = strrchr(LibraryPath, PathGetSeparatorA(PATH_STYLE_NATIVE))))
Packit 1fb8d4
	{
Packit 1fb8d4
		printf("%s: Error identifying module directory path\n", __FUNCTION__);
Packit 1fb8d4
		return -1;
Packit 1fb8d4
	}
Packit 1fb8d4
	*p = 0;
Packit 1fb8d4
Packit 1fb8d4
	NativePathCchAppendA(LibraryPath, PATHCCH_MAX_CCH, "TestLibraryA");
Packit 1fb8d4
	SharedLibraryExtension = PathGetSharedLibraryExtensionA(PATH_SHARED_LIB_EXT_WITH_DOT);
Packit 1fb8d4
	NativePathCchAddExtensionA(LibraryPath, PATHCCH_MAX_CCH, SharedLibraryExtension);
Packit 1fb8d4
Packit 1fb8d4
	printf("%s: Loading Library: '%s'\n", __FUNCTION__, LibraryPath);
Packit 1fb8d4
Packit 1fb8d4
	if (!(library = LoadLibraryA(LibraryPath)))
Packit 1fb8d4
	{
Packit 1fb8d4
		printf("%s: LoadLibraryA failure: 0x%08"PRIX32"\n", __FUNCTION__, GetLastError());
Packit 1fb8d4
		return -1;
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	if (!FreeLibrary(library))
Packit 1fb8d4
	{
Packit 1fb8d4
		printf("%s: FreeLibrary failure: 0x%08"PRIX32"\n", __FUNCTION__, GetLastError());
Packit 1fb8d4
		return -1;
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	return 0;
Packit 1fb8d4
}