HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
LPVOID lpLoadLibraryA = (LPVOID)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "LoadLibraryA");
LPVOID lpMemory = VirtualAllocEx(hProc, 0, strlen(DllFullPathName), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(hProc, lpMemory, (LPCVOID)DllFullPathName, strlen(DllFullPathName), 0);
CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)lpLoadLibraryA, lpMemory, 0, 0);