2017-10-28 16 views
-2

\ dll \ dll.cpp | 206エラーを表示しています: 'PTHREAD_START_ROUTINE'はこのスコープで宣言されていませんでした。 \ dll \ dll.cpp | 208 |エラー: 'pfnThreadRtn'はこのスコープで宣言されていませんでした。 208 |エラー: 'pfnThreadRtn'はこのスコープ内で宣言されていませんでした。C++でエラーが発生しました 'PTHREAD_START_ROUTINE'がこのスコープで宣言されていません

どのように私は、スレッド手続きのtypedefの名前はLPTHREAD_START_ROUTINEある

char CurPath[256]; 
strcpy(CurPath,dllpath); 
int len = (strlen(CurPath)+1)*2; 
WCHAR wCurPath[256]; 
MultiByteToWideChar(CP_ACP,0,CurPath,-1,wCurPath,256); 

pszLibFileRemote = (PWSTR) 
    VirtualAllocEx(hRemoteProcess,NULL,len,MEM_COMMIT,PAGE_READWRITE); 

WriteProcessMemory(hRemoteProcess,pszLibFileRemote, 
       (PVOID)wCurPath,len,NULL); 

PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE) 
    GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW"); 

hRemoteThread = CreateRemoteThread(hRemoteProcess,NULL,0, 
    pfnThreadRtn,pszLibFileRemote,0,NULL); 
+1

次に、その名前を定義するヘッダーは含まれていません。 –

+0

代わりに 'LPTHREAD_START_ROUTINE'を試してください。ここには多くの誤りがあるようです。 –

+0

なぜC++タグを使用していますか? –

答えて

1

を修正することができます。

実際のコードでは、各関数呼び出し後にエラーをチェックする必要があります。リモートプロセスはいつでも終了できます。

関連する問題