델파이 APP와 델파이 DLL간에 strings
을 공유 할 때 uses 절의 첫 번째 단위로 app과 dll 프로젝트 소스에 모두 Sharemem
을 추가해야한다는 것을 알고 있습니다.델파이의 Sharemem - 필요하지 않은 경우
그러나 Pchars
만 받아 들일 수있는 dll 함수의 경우, strings
을 사용하는 일부 dll 메소드에는 sharemem도 사용해야합니까? 나에게 샘플 코드를 같이하자 : 간단하고 쓸모없는 경우
procedure ShowMyCustomMessage(aMessage : Pchar);
var
vUselessString : string;
begin
vUselessString := aMessage;
ShowMessage(vUselessString);
end;
exports
ShowMyCustomMessage;
를, dll을은 Pchar
을 수락하지만 내 보낸 방법 안에 DLL은 string
VAR을 만듭니다. ShareMem
도 추가해야합니까?
약 WideString
은? WideString
매개 변수를 전달하려면 Sharemem
을 사용해야합니까?
AFAIK 'ShareMem'은 사용되지 않는 borlndmm.dll 메모리 관리자를 사용하려는 경우에 사용됩니다. 하지만 Delphi 2007부터는 좋은 생각이 아닙니다. FastMM4 기반의 SimpleShareMem을 사용하는 것이 더 빠르고 * 빠릅니다. –
@Arnaud borlndmm은 (는) 사용 중지 될 예정입니까? 나는 그것에 대해 말하는 사람을 보지 못했다. –
@RafaelColucci : * old * borlndmm.dll. 혼란스럽게도 모든 메모리 관리자 DLL에는이 이름이 있습니다. 현재 버전의 Delphi/C++ Builder는 'borlndmm.dll'로 컴파일 된 FastMM을 사용하며 몇 년 전부터 사용되었습니다. –