CString g_csDllPath = "1.dll";
    HWND hWnd = ::FindWindow(NULL,"计算器");
    DWORD dwProcessId;
    GetWindowThreadProcessId(hWnd,&dwProcessId);
    HANDLE hProcesshandle = OpenProcess(PROCESS_ALL_ACCESS,  FALSE,dwProcessId);
    DWORD dwLen = g_csDllPath.GetLength()+1;
    LPVOID lpDllPath = (LPVOID)VirtualAllocEx(hProcesshandle,NULL,dwLen,MEM_COMMIT,PAGE_READWRITE); 
    BOOL isRet = WriteProcessMemory(hProcesshandle,lpDllPath,(LPVOID)(g_csDllPath.GetBuffer(0)),dwLen,NULL);    

    PTHREAD_START_ROUTINE pfnStartAddr;
    pfnStartAddr = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("Kernel32.dll"),"LoadLibraryA");
    
    HANDLE hThread = CreateRemoteThread(hProcesshandle,NULL,0,
        pfnStartAddr,
        lpDllPath,0,NULL);
    WaitForSingleObject(hThread,INFINITE);
    CloseHandle(hThread);
    
     hThread = CreateRemoteThread(hProcesshandle,NULL,0,
         (LPTHREAD_START_ROUTINE)FreeLibrary,
         lpDllPath,0,NULL);    
     WaitForSingleObject(hThread,INFINITE);
    CloseHandle(hThread);
为什么不行啊? 我看了1.dll已经写入了calc.exe的内存中,但是我用Iceworld查看模块就是没有1.dll,路径是对的哈··