Q&A

  • C++에서 만든 DLL 화일을 불려와서 사용중 에러메시지
C++에서 아래와 같이
    extern "C" __declspec(dllimport) CString Square(CString d);
    extern "C" __declspec(dllimport) unsigned long Square1(CString d);
    extern "C" __declspec(dllimport) unsigned long Square2(CString d);
이렇게 선언한 DLL 참조 화일입니다.

델파이에서
    function Square(s:string):String        ;Cdecl;
    function Square1(s:string):Cardinal                ;Cdecl;
    function Square2(s:string):Cardinal                ;Cdecl;
implementation
    function Square(s:string):String;external 'DllSquare.dll';
    function Square1(s:string        ):Cardinal                ;external 'DllSquare.dll';
    function Square2(s:string        ):Cardinal                ;external 'DllSquare.dll';
선언하고
procedure TfrmMain.Button1Click(Sender: TObject);
begin
                    frmmain.edit29.text:=(Square(frmmain.edit12.Text));
                    frmmain.edit32.Text:=inttostr(Square1(frmmain.edit12.Text));
                    frmmain.edit35.Text:=inttostr(Square2(frmmain.edit12.Text));
end;
이렇게 하면 정상적으로 값은 출력되지만, 화면에는

Project xxx.exe raised exception class ELnvalidPointer with message 'Invalid Pointer operation'
process stopped. use step or run to continue..

메시지가 나오면서 화면이 버그화면이 뜨면서 종료되어 버립니다.
어떻게 고쳐야 하나요?
고수님의 도움 부탁드립니다.

0  COMMENTS