2011-10-27 9 views
-2

하나의 DLL에서 하나의 exe로 record을 보내려고합니다.WM_COPYDATA를 사용하여 dll에서 exe로 정보를 보낼 수 없습니다.

dll은 내가 작성한 Outlook 추가 기능입니다. exe가 내 응용 프로그램입니다.

this example을 사용하여 record을 exe에서 exe로 전송했지만 dll에서 exe로 동일한 작업을 시도하면 작동하지 않습니다.

참고 : 링크를 열면 사용중인 코드를 찾을 수 있습니다. 이 코드는 EXE 보낸 응용 프로그램과 EXE 보낸 응용 프로그램 용입니다. 이 작동합니다.

dll에 보낸 사람 코드를 넣으면 예제가 더 이상 작동하지 않습니다.

해결책을 제안 해 주시겠습니까?

+0

'TRecord'란 무엇입니까? –

+0

기록, 나는 질문을 업데이 트했습니다. – LaBracca

+0

당신은'WM_COPYDATA'를 보내는 코드와 그것을받는 코드를 보여줄 필요가 있습니다. 또한 "작동하지 않는다"는 의미를 설명해야합니다. –

답변

0

문자열이 보이도록 남아 있다고 가정하면 레코드를 문자열 (CSV, 가능하면 ~와 같은 이상한 구분 기호 사용)로 직렬화하거나 문자열 (PAnsiChar 또는 PWideChar), 다른 쪽 끝에있는 레코드로 역 직렬화합니다. 이것은 당신이 원하는 것만 큼 우아하지는 않지만 절대적으로, 긍정적으로 작용할 것입니다.

+0

'string [n]'과 함께 레코드도 매우 쉽습니다. 그냥'SizeOf()'를 사용해야하고 괜찮을 것이다. –

+0

답장을 보내 주셔서 감사하지만 내 문제는 그것이 작동하는 exe에서 dll에서 작동하지 않는 이유는 데이터를 보내지 않습니다. – LaBracca