VC++ DLL 에서 string 값을 return 받고 싶습니다.
DLL 함수에선 string 값이 맞지만
델파이에 return 값은 아무것도 없고...
이렇게 하는 거 아닌가요? 자세하게 잘못된 점을 지적해 주시면 감사하겠습니다.
너무 기본이 없어 힘듭니다. 좀 도와주십시오..
<< 델파이 >>
function dl_getdigs(line : Integer; count : Integer; var dgts:PChar): Boolean;
stdcall; external 'DIALOGIC.DLL' name 'dl_getdigs';
var
dgts : PChar;
gdate : String;
begin
dl_getdigs(line, 4, dgts);
gdate := StrPas(dgts);
ShowMessage (gdate); // ===> 아무것도 없어요..
if temp <> '#' then
end;
<< VC++ >> DLL
extern "C" _declspec(dllexport) bool dl_getdigs(int line, int count, char *gdgts);
_declspec(dllexport) bool dl_getdigs(int line, int count, char *gdgts)
{
/// 생략
temp.Format ("dgts : %s" , gdgts); // ===> 여기에선 값이 맞아요
AfxMessageBox(temp);
return TRUE;
}
stdcall; external 'DIALOGIC.DLL' name 'dl_getdigs';
이런식으로 함 바꿔보세요 될지는 모르지만...
windows uses절을 보니
이런식으로으로 되있던데요
유사한 평션에 보니 인자1에서 인자2로 복사하던가
아님 반대로 복사를 하지여...
근데 여기에는 var라는 참조 호출인자가 빠져있네여
function lstrcpy(lpString1, lpString2: PChar): PChar; stdcall;...
초보 wrote:
>
> VC++ DLL 에서 string 값을 return 받고 싶습니다.
>
> DLL 함수에선 string 값이 맞지만
>
> 델파이에 return 값은 아무것도 없고...
>
> 이렇게 하는 거 아닌가요? 자세하게 잘못된 점을 지적해 주시면 감사하겠습니다.
>
> 너무 기본이 없어 힘듭니다. 좀 도와주십시오..
>
>
>
>
> << 델파이 >>
>
>
> function dl_getdigs(line : Integer; count : Integer; var dgts:PChar): Boolean;
> stdcall; external 'DIALOGIC.DLL' name 'dl_getdigs';
>
>
> var
> dgts : PChar;
> gdate : String;
>
> begin
> dl_getdigs(line, 4, dgts);
> gdate := StrPas(dgts);
>
> ShowMessage (gdate); // ===> 아무것도 없어요..
>
> if temp <> '#' then
>
> end;
>
>
>
> << VC++ >> DLL
>
> extern "C" _declspec(dllexport) bool dl_getdigs(int line, int count, char *gdgts);
>
> _declspec(dllexport) bool dl_getdigs(int line, int count, char *gdgts)
> {
>
> /// 생략
>
> temp.Format ("dgts : %s" , gdgts); // ===> 여기에선 값이 맞아요
> AfxMessageBox(temp);
>
> return TRUE;
>
>
> }