--- /dev/null
+#include "../pld.h"\r
+\r
+PLD(KERNEL32)\r
+int main(void) {\r
+ DWORD dummy;\r
+ PFN(WriteFile)(GetStdHandle(STD_OUTPUT_HANDLE), "Hello World!\n", 13, &dummy, NULL);\r
+ return 0;\r
+}\r
--- /dev/null
+#ifndef COOL_PLD_H\r
+#define COOL_PLD_H\r
+\r
+#ifdef _MSC_VER\r
+#define PLDTYPEOF(x) __typeof__(x)\r
+#else\r
+#define PLDTYPEOF(x) typeof(x)\r
+#endif\r
+\r
+#ifdef _WIN32\r
+#include <windows.h>\r
+static HMODULE PLD_LoadLibrary_wrapper(LPCSTR lpLibFileName)\r
+{\r
+ HMODULE hModule = GetModuleHandleA(lpLibFileName);\r
+ if (hModule != NULL)\r
+ hModule = LoadLibraryA(lpLibFileName);\r
+ return hModule;\r
+}\r
+static FARPROC PLD_GetProcAddress_wrapper(HMODULE hModule, LPCSTR lpProcName)\r
+{\r
+ FARPROC lpProc = GetProcAddress(hModule, lpProcName);\r
+ return lpProc;\r
+}\r
+\r
+#define PLD(name) \\r
+ static HMODULE PLDH(void) { \\r
+ static HMODULE hModule = NULL; \\r
+ if (hModule == NULL) hModule = PLD_LoadLibrary_wrapper(#name); \\r
+ return hModule; \\r
+ } \\r
+\r
+#define PFN(name) ((PLDTYPEOF(name))PLD_GetProcAddress_wrapper(PLDH(), #name))\r
+\r
+#else\r
+#error POSIX Unimplemented!\r
+#endif\r
+\r
+#endif // COOL_PLD_H\r