|
: 빌더용 컴포넌트를 만들려니 혹시나 쓰게 될지 모르는 델파이에서는 못 쓰게 될 것이고...
: dll로 만들려니 제 지식으로는 좀 어려워 보이고...
: 차라리 클래스로 만들까 싶기도 하구요..
DLL 만드는건 그리 어렵지 않습니다.
씨빌더에서 프로젝트 새로 만들때 DLL Wizard가 있습니다.
DLL 프로젝트 만들고 함수 추가하면되지요
클래스로 만든다는 얘기는 그냥 소스로 사용하시겠다는 말씀인지?
그렇다면 당연히 델파이에는 못쓰는거 아닌가요?
:
: 어떤게 유용할까요?
: dll 파일 만드는데 특별히 필요한 지식이 있는지요...
: dll은 모든 언어에서 다 불러 쓸 수 있는거 아닌가요?
라이브러리 만드는 거랑 비슷하다고 보시면됩니다.
다만 사용할때 동적으로 로딩되고 여러 프로세스에서 동시에 공유할 수 있는 코드일 뿐이죠
모든 언어라..
물론 씨빌더나 비주얼씨같은 씨언어 계열은 DLL쓸 수 있고요
비주얼 베이직에서도 제한적이지만 DLL쓰는거 같던데요
델파이도 쓸수 있지 않을까요?
물론 모든 언어에서 사용하려면 OCX로 만드는게 좋죠
속도요?
당연히 느릴 수 밖에 없습니다. 한수를 한번 호출해도 한번 거쳐서 호출되니까요
하지만 OCX도 바이너리 코드이기 때문에 일단 호출된 후에는 느리지 않습니다.
빈번한 함수 호출이 있을경우에는 조금 느릴수도 있지만..
일반적인 사용에서는 별로 차이가 없습니다.
: 그렇다면 클래스로는 dll을 못 만드는가요?
DLL은 함수 덩어리라고 생각하시면 됩니다.
물론 DLL에 클래스를 선언하고 객체를 만들수 있지만...
보통 배포용 DLL을 보면 거의 C 함수로만 만듭니다.
이유인 즉.. 클래스를 컴파일하는 C++컴파일러는 다형성을 지원하기위해
컴파일 중에 함수이름을 바꾸게 됩니다.
그게 컴파일러에 따라 다르기때문에 C++로 만든 DLL은 컴파일러마다 호환되지 않습니다.
즉 Visual C++로 컴파일한 DLL을 빌더에서는 사용할 수 없고
반대도 마찬가지로 사용할 수 없게 됩니다.
결론적으로 제 생각을 말씀드리면..
DLL이나 OCX가 님이 구상하는 라이브러리로 적당할것 같습니다.
|