안녕하세요.
초보개발자 입니다.
dll파일 사용법을 공부하던 중 잘 되지 않아 이렇게 질문을 하게 되었습니다.
dll파일은 델파이에서 만들고 사용은 c++빌더에서 하고 있습니다.
dll소스
library Project4;
exports //밖에 내보내다
____; //클래스는 어떻게 불러와야 할가요??
type
TFtpSW = class(TObject)
private
public
ftpSW : TIdFTP;
constructor create; virtual;
function SWconnect(host:AnsiString; name:AnsiString; pw:AnsiString; path:AnsiString): Integer;
function SWfileget(path:AnsiString; filenum:Integer): AnsiString;
destructor SWDestroy;
end;
로 만들었습니다.
exports 시 class를 어찌 내보내야 할지 모르겠고
class 를 어찌 불러와서 사용해야 할지 모르겠습니다.
기본적은 함수들을 dll로 만들어 불러올때는
typedef int (*TSum)(int a, int b);
TSum sumtest;
sumtest = (TSum)GetProcAddress(hDll,"Sum");
ShowMessage(sumtest(1,2));
위와 같은 형식으로 불러왔는데
class 의 경우는 잘 모르겠습니다.
dll 파일에서
function swftp: TObject; stdcall;
implementation
function swftp;
begin
Result := TFtpSW.Create;
end;
도 해보고
불러오는 프로젝트에서
typedef void (*Tswftp);
HINSTANCE hDll = Null;
hDll = LoadLibraryA("Project4.dll");
if (hDll)
{
Tswftp ftp;
ftp = (Tswftp)GetProcAddress(hDll, "swftp");
ftp();
과 같이 했더니 함수를 부를수 없다고 에러가 납니다.
간단한 예제나 도움좀 부탁드립니다.
책도 없고 인터넷 찾아가며 배우려니 너무 힘드네요..
|