나는 함수를 필요로하는 함수의 인수로 사용할 임시 함수를 만드는 시간을 절약 할 생각을 가지고있었습니다. 이 동작을 수행하는 이유는 모든 종류의 함수를 정의하지 않고도 (Win32 API를 사용하여) 새로운 스레드에서 쉬운 방식으로 작업하는 것입니다.함수 호출 내에서 함수 정의하기
void msg (const string & message) {
MessageBox (0, message.c_str(), "Message", 0);
}
이 메시지 상자를 생성합니다, 그러나 닫을 때까지 프로그램이 정지 :
다음은 예입니다. 해결 방법은 주 스레드와 동시에 실행되는 메시지 상자 용 스레드를 만드는 것입니다. 나는 그 같은 목적을 위해 다른 스레드를 원하는 여러 기능을 가지고 있기 때문에이 경우
void msg (const string & message) {
CreateThread (0, 0,
(LPTHREAD_START_ROUTINE)({MessageBox (0, message.c_str(), "Message", 0);}),
0, 0, 0);
}
이
LPTHREAD_START_ROUTINE
이
CreateThread
에 호출 기능을 넣어,
typedef DWORD (*LPTHREAD_START_ROUTINE)(LPVOID param);
로 정의하는 것은 잘 작동하는 것 같군.
하지만 사용하고 싶다고 말하면 LPVOID param
입니다. 이 방법이 얼마나 표준인지, 그리고 더 고급 기술을 위해이 방법을 사용하는 방법을 알고 싶습니다. 또한 나중에 사용할 수 있도록 함수를 임시로 저장하고 사용하지 않기 때문에 나중에 사용할 수 있도록 저장하는 기능을 알고 있습니다 (예 : 처리 할 메시지를 추가 할 수있는 메시지 루프 함수 및 호출 할 해당 함수). 필요할 때 호출 할 수 있습니다. 쓰레드와 같은 것들을 넘어선 용도가 있습니까? 한 줄을 다른 곳에서 사용하기 위해 짜증나게 만드는 곳이 있습니까?
문제는 정말 명확하지 않다) stackoverflow.com :)에
덕분에이 또 다른 게시물을 찾을 수 있습니다 생각 (그리고 또한 그 구문이 아닌 표준) –
난 그냥 오늘 생각을했다 : 파일에 시간과 공간을 절약하는 체계. 나는 그 사용법이 얼마나 안전한 지, 그리고 그 예보다 더 나은 것들에 사용될 수 있는지 궁금합니다. – chris