|
안녕하세요
수야랍니다.
DLL메모리 운영에 관한건데요
String객체(또는 중첩 Strings에 포함된 구조체/클래스)를 전달하기위해서 MEMMGR.LIB화일을 프로젝트에 추가해 주세요
왜냐면 메모리 운영상 최적화로 맞추어주기위해 borlndmm.dll사용하기때문에 DLL이랑 EXE의 호출규칙이 변경될거랍니다.
또한 MEMMGR.LIB를 사용하실때면 Borlndmm.dll화일을 함께 배포하셔야하구요
아참.. TObject도 역시 파라미터나 전달값으로 사용하는것을 피하셔야하구요
뭐 이것저것다 안된다 생각하시겠지만
char *로 대신해서 사용할수도 있으니 참고하시구요
DLL을 다시 만들어보세요..
그리구여.. VB소스는 뭐하는거죠?
BC뿌니 몰라서 ㅡㅡㅋ
이상한 질문같아서 답변 안드릴라구했는데 아닌거 같아서 올리긴하지만요
그럼..
윤종철 님이 쓰신 글 :
:
: bc++에서
:
: extern "C" int __declspec(dllexport) __stdcall kk()
: {
: return 1;
: }
:
:
: 같은 형식으로 DLL을 만들었습니다.
:
: 다른 언어(VB)에서 kk()를 호출하면 int,long형은 별무리없이
: 값이 호출자에게 전달이 되는데, String,AnsiString형은 전달이 되다가
: 몇번 실행하면 read될수 없다면서 실행이 종료되어버립니다
: 원래 String형은 전달을 할 수 없는지요?
:
:
: //이런 형태로 하면 3회정도 호출되어 실행되다가 종료되어버립니다.
: extern "C" String __declspec(dllexport) __stdcall kk()
: {
: String aa="1234";
: return aa;
: }
: 감사합니다...
:
:
|