Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
DLL을 프로젝트에 넣는방법...
저는 C를 사용하여 DLL을 만들었습니다.
이걸 델파이에서 사용해야 하는데요.
어떻게 해야할까요?
저는 델파이 초보이구요...
책을 봐도 잘 모르겠어요...
DLL에 있는 함수를 이용하려고 하거든요...
고수님들의 조언부탁드립니다.
3
COMMENTS
변인호
•
2001.06.01 02:48
강명완 wrote:
> 저는 C를 사용하여 DLL을 만들었습니다.
> 이걸 델파이에서 사용해야 하는데요.
> 어떻게 해야할까요?
>
> 저는 델파이 초보이구요...
> 책을 봐도 잘 모르겠어요...
> DLL에 있는 함수를 이용하려고 하거든요...
>
> 고수님들의 조언부탁드립니다.
>
아래의 예를 참조하세요..
리턴값이 없는 함수는 Procedure로 선언하시고
리턴값이 있는 함수는 function으로 선언하시면 됩니다.
아래 { C++ Type function
'
'
'
}
이 부분은 C에서 선언된 함수 원형입니다..
unit WBoardDll;
interface
uses
{$IFDEF WIN32}
Windows;
{$ELSE}
Wintypes, WinProcs;
{$ENDIF}
{ C++ Type function
extern "C" _declspec(dllimport) void WBShow();
extern "C" _declspec(dllimport) void ServerStart();
extern "C" _declspec(dllimport) void ClientStart(char* ip);
extern "C" _declspec(dllimport) void WBClose();
}
procedure WBShow;stdcall;external 'WBoard.dll'
procedure ServerStart(x,y:PChar;wHandle:HWND);stdcall;external 'WBoard.dll'
procedure ClientStart(x,y,ip:PChar;wHandle:HWND);stdcall;external 'WBoard.dll'
procedure WBClose;stdcall;external 'WBoard.dll'
function IsWBServer:boolean;stdcall;external 'WBoard.dll'
implementation
end.
도움이 되셨으면 좋겠는데.. 저도 이런 문제로 무지 고생을 한적이 있어서..^^;
0
0
삭제
수정
댓글
강명완
•
2001.06.01 05:01
죄송합니다만...
한번 더 봐주시겠습니까?
먼저 C로 작성된 DLL에서는 다음과 같이 선언하였습니다.
extern "C" __declspec(dllimport) void Crypt(int EncType, char *InStr, char *OutStr);
이때 델파이에서 선언해줄때...
리턴값이 있는것은 function으로 하라고 하셨죠?
그래서 다음과 같이 했습니다.
{ C++ type function
extern "C" __declspec(dllimport) void Crypt(int EncType, char *InStr, char *OutStr);
}
function Crypt:String; StdCall; external 'des.dll'
이게 맞나요?
이건
var과 implementation 사이에 작성하였습니다.
함수가 여러개 있는데 중요한 함수는 Crypt하나입니다.
다른 함수들도 다 선언해 주어야 하나요?
델파이에서 부를 함수는 하나뿐인데...
그리고, DLL안에 있는 함수를 사용할때...
Crypt(EncType : Integer ; SrcStr, EncStr : String);
이렇게 하면 되나요?
이 Crypt 함수를 부르는 부분에서 에러가 납니다.
이 DLL의 용도는 암호화 타입(0:암호화, 1:복호화)과 소스문자열(SrcStr), 결과가 들어갈 문자열( EncStr)입니다.
질문이 좀 이상한가요?
죄송하지만 한번만 더 조언해주세요...
0
0
삭제
수정
댓글
최용일
•
2001.06.01 05:21
안녕하세요. 최용일입니다.
하나의 함수만 필요하다면 하나의 함수만 선언해서 사용하시면 됩니다...
델파이의 string과 C의 널종료문자열은 완전히 다른 구조의 자료형입니다...
델파이에도 C의 널종료문자열과 같은 PChar란 형이 있습니다...
그리고 리턴값이 void형인것은 procedure로 선언하셔야죠... void형 함수는 리턴값을 참조할 필요가 없는 함수입니다...
interface
......
procedure Crypt(EncType : Integer; InStr, OutStr: PChar); stdcall;
......
implementation
......
procedure Crypt; external 'des.dll' name Crypt;
......
end.
^^ 항상 즐코하세요...
강명완 wrote:
> 죄송합니다만...
> 한번 더 봐주시겠습니까?
>
> 먼저 C로 작성된 DLL에서는 다음과 같이 선언하였습니다.
> extern "C" __declspec(dllimport) void Crypt(int EncType, char *InStr, char *OutStr);
>
> 이때 델파이에서 선언해줄때...
> 리턴값이 있는것은 function으로 하라고 하셨죠?
> 그래서 다음과 같이 했습니다.
>
> { C++ type function
> extern "C" __declspec(dllimport) void Crypt(int EncType, char *InStr, char *OutStr);
> }
>
> function Crypt:String; StdCall; external 'des.dll'
>
> 이게 맞나요?
> 이건
> var과 implementation 사이에 작성하였습니다.
>
> 함수가 여러개 있는데 중요한 함수는 Crypt하나입니다.
> 다른 함수들도 다 선언해 주어야 하나요?
> 델파이에서 부를 함수는 하나뿐인데...
>
> 그리고, DLL안에 있는 함수를 사용할때...
>
> Crypt(EncType : Integer ; SrcStr, EncStr : String);
>
> 이렇게 하면 되나요?
> 이 Crypt 함수를 부르는 부분에서 에러가 납니다.
>
> 이 DLL의 용도는 암호화 타입(0:암호화, 1:복호화)과 소스문자열(SrcStr), 결과가 들어갈 문자열( EncStr)입니다.
>
> 질문이 좀 이상한가요?
> 죄송하지만 한번만 더 조언해주세요...
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이강준
2001.06.01 01:38
0
COMMENTS
/
0
LIKES
delphi4의 quick report에서 onpreview가 안되나요?
강명완
•
2001.06.01 01:25
3
COMMENTS
/
0
LIKES
DLL을 프로젝트에 넣는방법...
저는 C를 사용하여 DLL을 만들었습니다. 이걸 델파이에서 사용해야 하는데요. 어떻게 해야할까요? 저는 델파이 초보이구요... 책을 봐도 잘 모르겠어요... DLL에 있는 함수를 이용하려고 하거든요... 고수님들의 조언부탁드립니다.
변인호
•
2001.06.01 02:48
강명완 wrote: > 저는 C를 사용하여 DLL을 만들었습니다. > 이걸 델파이에서 사용해야 하는데요. > 어떻...
강명완
•
2001.06.01 05:01
죄송합니다만... 한번 더 봐주시겠습니까? 먼저 C로 작성된 DLL에서는 다음과 같이 선언하였습니다. e...
최용일
•
2001.06.01 05:21
안녕하세요. 최용일입니다. 하나의 함수만 필요하다면 하나의 함수만 선언해서 사용하시면 됩니다... ...
심현지
•
2001.06.01 01:00
1
COMMENTS
/
0
LIKES
VC++로 만든 컴포넌트 추가
최용일
•
2001.06.01 05:28
안녕하세요. 최용일입니다. 인스톨할때 패키지를 선택해서 하셨죠? 그러니까 그 패키지에 컴포넌트가 들...
최계호
•
2001.06.01 00:35
8
COMMENTS
/
0
LIKES
DBgrid에 있는 어떤 index를 선택하면 그에 관계된 edit들을 나타내는 방법좀?
델ABC
•
2001.06.01 00:42
최계호
•
2001.06.01 03:01
성더기
•
2001.06.01 03:16
최계호
•
2001.06.01 03:36
성더기
•
2001.06.02 19:27
델ABC
•
2001.06.01 04:59
최계호
•
2001.06.01 22:48
• • •
델ABC
•
2001.06.01 00:06
1
COMMENTS
/
0
LIKES
DBGrid에서 UPdateSql을 이용하지않고 삭제하는 방법...
나그네
•
2001.06.01 04:51
델ABC wrote: > 델 고수님 안녕하세요... > 지는 지금 Query를 이용 DBGrid에 테이블내용을 나타냈는디유...
초보
•
2001.05.31 23:24
4
COMMENTS
/
0
LIKES
실행중인 어플리케이션을 강제종료하려면 어떻게 하죠..
최용일
•
2001.06.01 00:31
안녕하세요. 최용일입니다... 이러한 방법은 별루 좋은 방법이 아니구요... 스플래쉬폼에서 자주사용하...
초보
•
2001.06.01 18:57
최용일 wrote: > 안녕하세요. 최용일입니다... > > 이러한 방법은 별루 좋은 방법이 아니구요... 스플...
최용일
•
2001.06.01 20:19
읔~ 제가 실수했군요.... var CorrectPassword: Integer; 그리고 프로젝트소스의 uses절에 Cont...
이현철
•
2001.06.01 00:27
첫번째 방법으로는 Form1 의 left 를 -3000 해서 숨긴다음에 Form1.create 에서 판단한후 Form2.show를 하...
진짜초보
•
2001.05.31 23:14
2
COMMENTS
/
0
LIKES
BDE안쓰고 MS-SQL과 연결하는법 좀 알려주세여...
김한
•
2001.06.01 02:10
BDE에서 local말구 server로 설정하고 사용해 보세요.. 진짜초보 wrote: > BDE안쓰고 MS-SQL과 연결하...
이현철
•
2001.06.01 00:36
진짜초보 wrote: > BDE안쓰고 MS-SQL과 연결하구 싶은데여... > 잘안되여.... > 연결하는법 좀 알려 주...
hytool
2001.05.31 23:17
0
COMMENTS
/
0
LIKES
리눅스에서 인터베이스 설치후 error...
한구용
2001.05.31 22:46
0
COMMENTS
/
0
LIKES
[잘문]마이다스 + MTS 프로그램 작성 에러 도와주세여..
김대규
•
2001.05.31 22:32
2
COMMENTS
/
0
LIKES
PChar 형에대해
민
•
2001.06.04 09:04
제가 대규님의 질문을 본 바로는 포인터에 대한 개념을 아직 완전히 이해하고 계시지 못한 것으로 보입니...
김대규
•
2001.06.05 18:40
감사합니당~... 근데 저두 어떠한시점에 그런현상이 생기는지 일관성을 찾을수가없어서... 결국은 PChar...
박건수
•
2001.05.31 22:25
1
COMMENTS
/
0
LIKES
특정레코드로의 이동에 대해서
성더기
•
2001.06.01 03:14
박건수 wrote: > 안녕하세요 > 제가 할려고 하는 것은 query 를 써서 불러온데이터를 dbgrid에 뿌려 주는...
111
2001.05.31 21:54
0
COMMENTS
/
0
LIKES
제발 좀 갈켜 주세요
백승환
•
2001.05.31 21:29
5
COMMENTS
/
0
LIKES
absolute?
최용일
•
2001.06.01 00:37
백승환
•
2001.06.01 01:34
최용일
•
2001.06.01 02:13
백승환
•
2001.06.01 19:38
최용일
•
2001.06.01 21:42
알고시퍼요~
•
2001.05.31 21:13
1
COMMENTS
/
0
LIKES
Query로 select, insert, update, delete하고 시퍼요~~
성더기
•
2001.06.01 03:11
select 문일경우 query1.open을 사용합니다 그외의 경우는 query1.execsql을 사용하지요 즉 커서 에러...
영
•
2001.05.31 20:39
2
COMMENTS
/
0
LIKES
informix 접속시 BDE 에러.. 살려줘여..T.T
김현
•
2001.06.22 02:40
혹시 client에서 informix의 senet32에 환경설정이 되어있는지 확인해 보세요? 잘은 모르겠지만 여기에 ...
이강재
•
2001.06.01 02:58
버전과 환경이 조금 다를 지 몰라도 일단 ilogin demo로 접속이 확인
써니
2001.05.31 20:28
0
COMMENTS
/
0
LIKES
(질문) 컴파일시 에러
mrsDelphi
•
2001.05.31 20:17
1
COMMENTS
/
0
LIKES
BDE없는 PC에 ActiveX로 짠 프로그램 배포시
최진환
•
2001.06.05 19:43
정말 오랫만에 답변을 해 드리는것 같네요..^^.. BDE는 배포용으로 DLL형태로 패키지가 되어 있는 놈이 있...
이광주
2001.05.31 20:04
0
COMMENTS
/
0
LIKES
IP 주소만으로 웹서버 데몬이 떠 있는지 체크하는 방법은?
이은영
2001.05.31 19:43
0
COMMENTS
/
0
LIKES
MonthCalendar의 특정 날짜에 색깔넣기
델초보...^^;
•
2001.05.31 19:25
1
COMMENTS
/
0
LIKES
윈도우에 있는 시간, 날짜 설정화면 뛰울려면 어떻게 해야되나요........
최용일
•
2001.05.31 19:40
안녕하세요. 최용일입니다... 아래와 같이 실행하세요... procedure TForm1.Button1Click(Sender: TO...
강명완
2001/06/01 01:25
Views
343
Likes
0
Comments
3
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 저는 C를 사용하여 DLL을 만들었습니다.
> 이걸 델파이에서 사용해야 하는데요.
> 어떻게 해야할까요?
>
> 저는 델파이 초보이구요...
> 책을 봐도 잘 모르겠어요...
> DLL에 있는 함수를 이용하려고 하거든요...
>
> 고수님들의 조언부탁드립니다.
>
아래의 예를 참조하세요..
리턴값이 없는 함수는 Procedure로 선언하시고
리턴값이 있는 함수는 function으로 선언하시면 됩니다.
아래 { C++ Type function
'
'
'
}
이 부분은 C에서 선언된 함수 원형입니다..
unit WBoardDll;
interface
uses
{$IFDEF WIN32}
Windows;
{$ELSE}
Wintypes, WinProcs;
{$ENDIF}
{ C++ Type function
extern "C" _declspec(dllimport) void WBShow();
extern "C" _declspec(dllimport) void ServerStart();
extern "C" _declspec(dllimport) void ClientStart(char* ip);
extern "C" _declspec(dllimport) void WBClose();
}
procedure WBShow;stdcall;external 'WBoard.dll'
procedure ServerStart(x,y:PChar;wHandle:HWND);stdcall;external 'WBoard.dll'
procedure ClientStart(x,y,ip:PChar;wHandle:HWND);stdcall;external 'WBoard.dll'
procedure WBClose;stdcall;external 'WBoard.dll'
function IsWBServer:boolean;stdcall;external 'WBoard.dll'
implementation
end.
도움이 되셨으면 좋겠는데.. 저도 이런 문제로 무지 고생을 한적이 있어서..^^;