그래서 나는 C 책 예제를 통해 창문을 가지고 실행/구현하고 있습니다. digg 인젝션 부분에 관한 문제가 있습니다. 문제는 해결할 수 없습니다. 문제 - 다른 프로세스/스레드에 속한 창에 LPARAM으로 TCHAR
나는 다른 스레드/프로세스에 속하는 대화 상자를 생성하고 난 그 다음 몇 가지 기능에 그 var에 사용할 수 있도록 그것을 TCHAR 변수를 보내려고하고 (기능 모두를 같은 DLL 파일에 TCHAR 있습니다)그래서 대화 상자가 만들어지고 다른 스레드에서 잘 앉아 있으면 메시지를 보냅니다.
먼저 내가 나중에 난 그냥 나 또한 내가 DLL에서이 작업을 수행해야 함을 언급하자 (내가하지 대화 상자의 스레드에서 DLL 스레드에서이 작업을 수행 할 정보와 그것을 채우기 다음
TCHAR finalpath[MAX_PATH];
TCHAR 선언 쓰레드가 필요한 tchar을 채울 수있는 유일한 방법이기 때문에 (나는 dll 작업 디렉토리를 얻어서 tchar로 채워야한다.)
그래서이 tchar에서이 정보를 얻으면 대화 상자에 메시지를 보내려고한다. tchar을 LPARAM으로 사용하십시오 (wparam은 hwnd btw입니다)
SendMessage(hWndDIPS, WM_APP, (WPARAM) lista, (LPARAM)finalpath);
0 이후
난 ... (이 기능은 공유 DLL에 상주 위입니다 참조 같은 절차에 의해 호출 매개 변수를받을 예정이다
INT_PTR WINAPI Dlg_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
chHANDLE_DLGMSG(hWnd, WM_CLOSE, Dlg_OnClose);
case WM_APP:
SaveListViewItemPositions((HWND) wParam, (TCHAR)lParam);
break;
}
return(FALSE);
}
기능을 다른 스레드 대화 절차 루프에서 기본 학업을 다음과 같이 정의 ..
공극 SaveListViewItemPositions (HWND hWndLV, TCHAR sejv []) {...}는
나 이로부터 얻을 컴파일러 에러
이다,Error 7 error C2664: 'SaveListViewItemPositions' : cannot convert parameter 2 from 'TCHAR' to 'TCHAR []'
그래서 나는 왜 이런 일이 일어나는 지 잘 모릅니다. tchar 배열을 누른 다음 매개 변수에 배열을 사용하는 방법을 추가해야합니다. (예 : 매개 변수에 배열을 사용하는 방법을 추가해야합니다. 더 이상 오류가 발생하지 않고 함수에서 매개 변수를 사용할 수 없습니다.)
그렇다면 왜 변환되지 않습니까?
이 대화 상자에서 tchar 변수를받는 다른 해결책이 있다면 설명하십시오.
덕분에
포인터를 전달하기 만하면 프로세스 경계를 넘어 데이터를 보내려고합니까? – wj32