Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15166] Char* 를 멤버로 갖는 구조체를 입력해야하는 DLL을 호출하다 집에 못들어감 (...)
앨리스 [babelfish] 2324 읽음    2014-05-22 02:09
프로젝트를 진행하면서 DLL 파일을 하나 써야할 일이 생겼습니다.

struct ResultData
{
  Double No;
  char* name;
  char* value;
  char* min
  cahr* max;
};



int Upload(int Id, char* sessionName, int DataSize , struct ResultData* ResultDataArray, char* ErrCode);

대략 이런형식의 함수인데요. 결과값을 구조체에 넣어 배열형태로 DLL에 넣어야 하여,

TResultData = Record

  No    : Double;
  Name  : PChar;
  Value : Pchar;
  min   : Pchar;
  max   : Pchar;

end;

TResultArr = Array of TResultData;

function upload(ID:Integer;sessionName:Pchar;DataSize:Integer;var ResultData:TResultArr; var ErrCode:PChar);

이런식으로 포팅하여 실행해보았는데요.

Access Violation 이 나면서 집에 들어가지 못하게 된 상황이 발생하였습니다. (...)

구조체로 입력하는 부분이 없는 다른 함수들은 잘 실행이 되는데, 구조체로 값을 입력해야 하는

저 함수만 실행하면 에러가 박박박 뜨네요. ;ㅁ;

TResultArr 를 ^TResultArr 하여 PResultArr 로 만들어 넣어도 보고, 포인터 변수로 넣어도 보고

ResultData를 포인터로 바꿔도 넣어보고 등등 별짓을 다 해봤는데, 몽땅 에러가 나구요 (...)

function upload(ID:Integer;sessionName:Pchar;DataSize:Integer;var ResultData:TResultData; var ErrCode:PChar);

로 그냥 구조체 하나만 넣었을때는 에러가 없지만, 그렇게는 쓸수가 없는 함수여서...

해당 DLL의 예제가 C로 작성되어 있는데, 해당 예제에서는 그냥 ResultData* 로 선언한것을 Allocmem 하고

각 배열에서 다시 각 필드를 allocmem 하여 그냥 넣게 되어있는데, 왜 델파이에선 똑같이 한다고 해봐도 다 에러가 나는 걸까요 ;ㅁ;

출장와서 셔츠하나를 4일째 입고 있으려니, 몸이 간질간질해서 내일은 꼭 집에 가고 싶네요 ;ㅁ;

아시는 분들의 도움을 부탁드립니다. ㅠ_ㅠ

+ -

관련 글 리스트
15166 Char* 를 멤버로 갖는 구조체를 입력해야하는 DLL을 호출하다 집에 못들어감 (...) 앨리스 2324 2014/05/22
15167     Re:Char* 를 멤버로 갖는 구조체를 입력해야하는 DLL을 호출하다 집에 못들어감 (...) 길이 2262 2014/05/22
15168         Re: 네. 그부분은 확인해보았습니다. 앨리스 2031 2014/05/22
15169             Re:Re: 네. 그부분은 확인해보았습니다. kylix 1992 2014/05/22
15170                 Re:Re:Re: 네. 그부분은 확인해보았습니다. 앨리스 2085 2014/05/22
15171                     Re:Re:Re:Re: 네. 그부분은 확인해보았습니다. kylix 2179 2014/05/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.