문자열을 주고받는 DLL 입니다.
Delphi 7로 만들었구요
VB6에서 DLL을 붙여서 잘 쓰고 있었고요, XP까지 잘 동작하고요,
windows7 에서는 프로그램이 죽어버리네요.
소스를 간단히 설명하자면요,
VB에서 string 문자열을 넘기면 DLL(델파이로 만든)에서 PChar로 받고
PChar 형 리턴값을 넘기면 VB6에서 string 으로 받습니다.
* 관리자권한...과 같은 문제는 아닌듯합니다.
아래 함수를 integer 를 주고받게 바꾸면 에러없이 잘 동작합니다.
PChar <-> string 형이 문제인 것 같은데... 영... 모르겠습니다.
Delphi 7 이라서 문제일까요? Windows7에 Delphi 2010 설치해서 컴파일하면 해결될 문제일까요?
-----------------------------------------------------------------
DLL 내부 함수 소스
-----------------------------------------------------------------
function TestPChar(const str: PChar): PChar; stdCall;
var
Size: Cardinal;
ii: PChar;
begin
ii := 'start0123456789' + #0;
Size := Length(ii) + 1;
GetMem(Result, Size);
StrPCopy(Result, ii);
............
end;
-----------------------------------------------------------------
VB6 어플리케이션 소스
-----------------------------------------------------------------
Private Sub Command8_Click()
Dim iResult As String
iResult = TestPChar("test")
Text1.SelText = iResult
End Sub