Q&A

  • 델파이로 만든 DLL 을 VC 에서 호출할때의 파라미터 ??
델파이에서 DLL을 만들었습니다..

Procedure 형은

function MyDLL(p_Port: Integer; p_InStr:PChar; out p_OutStr:PChar):integer;   stdcall;

VC Application 에서 호출할때..

loadlibrary 한 후에..

int    input_port;
char input_msg[1024];
char output_msg[1024];

int rc = MyDLL(input_port, input_msg, output_msg);

이런식으로 했거든요..

그런데.. 세번째 파라미터 output_msg 가 정확하게 넘겨 받지 못합니다..

델파이 Application 에서는 정상적으로 데이터를 넘겨받는데 말이죠..

델파이 DLL 에서 데이형 선언이 잘못된 것 같은데요..

어떻게 하면 언어에 구분없이 데이터를 정상적으로 넘길 수 있을까요?
3  COMMENTS
  • Profile
    steps 2008.07.18 02:57
    function MyDLL(p_Port: Integer; p_InStr:PChar; var p_OutStr:PChar):integer; cdecl; 로 해보시죠.
  • Profile
    강신구 2008.07.18 03:05
    이미 stdcall -> cdecl 로 바꿔봤는데 안되던군요..
  • Profile
    최용일 2008.07.18 08:00
    참조에 의한 호출이니까 아래와 같이 주소를 넘겨줘야 될 것 같은데요...
    int rc = MyDLL(input_port, input_msg, &output_msg);
    • steps
      2008.07.18 04:52
      procedure TForm1.btn1Click(Sender: TObject); var yr, mn, dy, i, days : word; function getDaysO...
    • 따따부따
      2008.07.18 20:24
      정말 감사합니다. ㅜㅜ
    • 따따부따
      2008.07.21 20:04
      위 내용대로 프로그램을 만들고 델파이7 에서 기본적으로 지원하는 WeekOfTheYear(Now) 를 써서 프로그...
    • steps
      2008.07.21 22:20
      델파이에서 주는 값은 요일을 고려한 역서의 주차입니다. 제가 올린 코드에서 DecodeDate를 DecodeDateF...
    • Crazy™
      2008.07.25 00:22
      주차를 구하는 방식이 몇가지 있는데요. 델파이 컴퍼넌트중 datetTimePicker ?든가. 달력보는 컴퍼넌트...
    • 방석배
    • 2008.07.18 02:46
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 강신구
    • 2008.07.18 02:19
    • 3 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.07.18 02:57
      function MyDLL(p_Port: Integer; p_InStr:PChar; var p_OutStr:PChar):integer; cdecl; 로 해보시죠.
    • 강신구
      2008.07.18 03:05
      이미 stdcall -> cdecl 로 바꿔봤는데 안되던군요..
    • 최용일
      2008.07.18 08:00
      참조에 의한 호출이니까 아래와 같이 주소를 넘겨줘야 될 것 같은데요... int rc = MyDLL(input_port, ...
    • 최용일
      2008.07.18 08:04
      TCP통신을 하셔야 할것 같네요... 양쪽에 모두 TCP통신을 하는 프로그램이 있어야 하고, 한쪽은 서버역...
    • 김성욱
      2008.07.19 04:12
      자료실에 보시면 한델 2차 세미나 자료있습니다. 소스 보시면 금방 해결 할 수 있습니다. 참고하...
    • 미소나눔
      2008.08.01 23:55
      저희도 회사에서 공지사항을 전파하기위해 비슷한걸 만든적이 있는데.. 뭐 대충 참고하세용.. // ...
    • 전문성
    • 2008.07.16 19:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.07.17 10:25
      프로그램내에 자신의 어플리케이션 이름을 가지고 무엇인가 하는 부분이 있다면..확인해보세요.. 그런...
    • 임형호
      2008.07.16 02:52
      post 해보세요.
    • 석주현
      2008.07.16 06:46
      혹시 USB 드라이브나 외장하드 붙여서 작업하시다가 빼신게 아닌지 궁금하네요. 그럴경우 프로젝트가 ...
    • 가르쳐주삼
      2008.07.16 19:43
      계속 델파이 설치 CD 를 넣고 사용해야 되나요......?
    • 석주현
      2008.07.17 03:30
      아 그게 아니고요. 혹시 프로젝트 파일 중에 E 드라이브에서 읽어온 파일이 있나 없나 확인을 해보세...
    • 가르쳐주삼
      2008.07.18 20:50
      아~ 네~ 확인해보겠습니다.
    • 강정구
    • 2008.07.15 20:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2008.07.16 02:59
      일단 footer를 먼저 만드셔야돼요. RealGrid.Footers.Add; 이렇게하면 footer가 만들어지죠. 그후...
    • 장종운
    • 2008.07.15 19:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이윤도
      2008.07.16 18:30
      네~ 가능한걸로 알고있구요. http://fadelphikorea.com/index.html <-- 델파이 FA개발자들을 위한...
    • 석주현
      2008.07.12 16:10
      http://www.codegear.com/downloads/regusers/delphi 등록 유저면 여기서 다운 가능 합니다. Quick...
    • 황경수
    • 2008.07.12 01:09
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 장성호
      2008.07.12 01:21
      SysUtils.ShortDateFormat 을 바꾸지 말고 DateTimePicker의 Format을 바꿰세요 procedure TF...
    • 황경수
      2008.07.14 20:00
      장성호님 답변 감사 합니다. 그런데, 제가 질문을 잘못 한거 같네요. 지금 제가 만든 프로그램은 ...
    • 최용일
      2008.07.14 21:16
      간단하게 하세요... 디비에 넣을때 아마도 문자열로 넣으시는것 같은데... FormatDateTime을 써서 포맷...
    • 장성호
      2008.07.14 21:29
      프로그램내에서 무조건 항국어방식 '(YYYY-MM-DD)' 으로 처리하는게 목적이시라면? 님께서 질문하시기...
    • 황경수
      2008.07.17 19:07
      아... 제가 뭔가 실수 했었네요. 잘 돌아 가네요. 장성호님, 최용일님 정말 감사 드립니다. 그럼 좋은...
    • 김상진
    • 2008.07.11 21:52
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.07.11 22:53
      private 에 Mainfrm : TfrmMain; 이라고 메인 폼 변수를 선언하시고, procedure ShowTestDlg(App:TA...
    • 김상진
      2008.07.11 22:56
      마찬가지 결과가 나옵니당 ^^
    • 이정욱
      2008.07.11 23:05
      아.. 그렇군요. 이런형식은 한번도 해보질 못해봤었네요.. 혹시 소스 있으시면 올려주세요 ^^;
    • 김상진
      2008.07.11 23:10
      위에 소스 있는데요 ㅠㅠ
    • 장성호
      2008.07.12 00:42
      음... LoadLibrary로 같은 dll을 두번하나 열번 load하나 결과는 같은놈입니다. LoadLibrary후...
    • 김상진
      2008.07.12 01:44
      속이 시원하니 잘 됩니다.. 감사합니다...
    • 이우석
    • 2008.07.11 20:50
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.07.11 21:30
      델파이 개발 환경 내에서 나는 익셉션이라면 정상입니다. 인디에서는 파일이 존재 한다면 위의 익셉션...
    • 사다리
      2008.11.19 08:43
      FTP.Get(s, SaveFile.FileName, True, FTP.ResumeSupported); 요 구문에서요 세번째 파라미터 값이...
    • 석주현
      2008.07.11 18:42
      <!--CodeS--> procedure TMainForm.tmr1Timer(Sender: TObject); begin Label1.Caption := Ti...
    • 김용호
      2008.07.11 18:48
      답변 감사합니다. 그런데 그것도 역시 안되네요.. ㅎㅎ 혹시 다른 방법은 ..... 감사합니다.. ...
    • 석주현
      2008.07.11 18:49
      7.0 에서는 잘되는 데 이상하군요 ㅠ_ㅠ
    • 김용호
      2008.07.11 18:54
      감사합니다.. 아무래도 6.0에선 안되는 듯하니 버젼을 올려서 해봐야 겠어요.. 답변 정말로 감사합니...
    • 김용호
      2008.07.11 19:16
      2007로 해보니 그냥은 안되고 알려주신 코드를 추가하니 되긴하네요. 다시 그려서 그런가 화면이 약간 ...
    • 이정욱
      2008.07.11 21:27
      Label1.Caption := TimeToStr(Now); Label1.Update; 를 해보세요. 참.. 그리고, 폼 OnCreate 에...
    • 장성호
      2008.07.11 21:29
      Label은 Graphic 컨트롤입니다. 무슨 말이냐면 자신을 나타낼 핸들이 없기때문에 Parent의 DC에 자...
    • • • •