창조유저그룹-커즈닷컴
Window close
ID :
PASS :
처음으로
창조
창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
커뮤니티
가입인사
자유게시판
Q/A게시판
(0/1)
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
자료실
소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
지원/기타
표준용어재정
구글 웹서치
관리자 전용
창조 팁
- '창조' 에 관한 팁을 올리는 곳입니다. 다수의 이미지가 필요하시면 아래 '이미지 자료실' 에 업로드 후 불러와 주세요..
LIST ALL
Posted by
지상현
2010-06-29 13:54:35, Hit :
4144
창조 전용 DLL 만들기 "창조의 자료형"
Homepage :
http://ssidang.x-y.net
Post URL :
http://cugz.sjworks.net/bbs/zboard.php?id=tip&no=413
이 팁은 다른 언어로 창조용 DLL을 만들 때 참고할 수 있는 사항을 모았습니다.
창조를 쓰는 분들을 위한 팁은 아닙니다.
주로 쓰는 언어와 툴은 Visual C++와 Delphi 정도로 한정하였습니다.
1. 창조에서 델파이로
창조에서 넘길 수 있는 자료형은 크게 세 가지가 있는데, 이걸 각각 델파이로 고치면 이렇습니다.
문자 -> String
실수 -> Cardinal
진리 -> Boolean
먼저
문자
는 창조가 델파이 String을 사용하기 때문에 호환됩니다. (String이 PChar와 호환되기 때문에 PChar도 쓸 수 있지만, 원래는 String입니다.)
실수
형은 Uint32 형을 넘겨야 하는데, 이는 창조가 0.9b 이하 버전에 음수 버그가 있기 때문에 창조와 동일한 값을 얻으려면 Cardinal을 쓰셔야 합니다.
물론 32비트 값이면 아무거나 상관 없습니다.
창조에서 소수값을 넘기는 경우는 테스트하지 못했습니다.
진리
형도 마찬가지로 델파이의 Boolean 타입과 호환되지만, 진리형의 정의는 언어마다 다른 경우가 있어 가급적 진리형 자체를 사용하지 않길 권장합니다.
창조에서 호출할 수 있는 함수는 stdcall; 을 붙여주셔야 합니다.
function
Hello(Text: String): Cardinal;
stdcall
;
실수함수
: Hello(
문자
: Text);
2. 창조에서 C/C++로
창조의 자료형을 C/C++로 고치면 이렇습니다.
문자 -> char*
실수 -> unsigned int / UINT
진리 -> char
문자
열은 char* (델파이의 PChar)와 호환되지만, Pascal 문자열이기 때문에 문자열 길이가 앞에 4바이트 헤더로 붙습니다.
그 뒤에 문자열이 들어있는데 실제 포인터는 거기서부터 시작됩니다.
따라서 문자열을 처리할 때 앞부분에 있는 길이로 처리해야 합니다.
창조의 문자는 NULL로 끝나는 문자열이 아닙니다.
(
이 말은 NULL도 유효 데이터로 포함된다는 뜻입니다!
)
실수
는 델파이와 같습니다.
진리
는 델파이 Boolean이 Int8이기 때문에 여기서도 char를 쓰셔야 합니다. (
char*가 아닙니다!
)
마찬가지로 __stdcall을 붙여주셔야 합니다.
UINT
__stdcall
Hello(
const
char
* Text);
실수함수
: Hello(
문자
: Text);
3. 문자열 다루기
창조는 반환형이 문자면 따로 복사해서 보관하는것 같습니다.
따라서, 문자열을 동적으로 생성한 경우 넘겨준 다음 나중에 직접 지워줘야 합니다.
다시 말해 문자열을 만든 쪽이 책임도 져야 합니다.
문자열은 포인터로 넘어오기 때문에 DLL 쪽에서 문자 내용을 수정할 수 있습니다.
LIST ALL
GO TO THE TOP
N
Subject
Posted by
Date
H
317
초보의 허접 팁입니다 - 창 종료할때 위치와 크기 기억하기 -
[2]
짱아
2005/04/26
5096
316
창틀 없이 창 이동
Pueding
2003/07/06
5222
315
창죠 문법 과 델파이 문법 비교..;;
[2]
김진영
2003/01/02
6003
314
창조파일 연결 바꾸기.. / 창조 nhpro.ini 파일 요리하기??
[6]
qkrwhdgns
2005/12/11
5308
313
창조의 명령어로 바이러스를 만들수 있다?!
[16]
이경근
2003/01/05
5066
312
창조의 구문강조를 html에 쉽게 적용하자..
[3]
변혁수
2006/06/21
4826
311
창조에서 핸들 다루기 - 꼭 알아두어야 할 중요한 사항 (rev.1)
[3]
지상현
2006/05/21
5811
310
창조에서 창없이 사용하기(?)
[10]
박종훈
2006/01/30
5140
309
창조에서 음수를 사용할 때 주의하자!
[1]
지상현
2005/10/08
6832
308
창조에서 영어로 뜨는 오류 메시지 안 뜨게 하기
지상현
2011/01/14
4480
307
창조에서 사용할수 없는 글자...
[7]
이희창(빙고)
2006/02/25
4938
306
창조에서 동적 메모리 할당
[3]
지상현
2004/09/25
5999
305
창조에도 goto문이 존재했었습니다.
바람
2018/01/05
2504
304
창조를 위한 창조도움말 유저가이드-_-;
[3]
박종훈
2006/08/26
5333
303
창조로 컴퓨터 제어?
[2]
박재성
2008/05/25
4755
302
창조로 셋업프로그램만들기..#1
[1]
SJsoft.inc
2002/12/13
5048
301
창조로 만들어진 두개의 프로그램을 연동하기..
권선중
2009/01/11
5082
300
창조는......(창조의 정의)이게 팁일까?
[1]
이경근
2003/01/05
5162
299
창조 코드에디터의 오타수정 기능!
[2]
박종훈
2010/07/21
4155
298
창조 전용 DLL 만들기 "함수명 한글로 만들기"
지상현
2010/06/29
4984
창조 전용 DLL 만들기 "창조의 자료형"
지상현
2010/06/29
4144
296
창조 도움말이 뻥을 쳤다!
[5]
지상현
2005/10/08
5324
295
창조 단축키 하나 소개 -_-;
지상현
2003/02/26
4694
294
창을 화면 중간에 띄우기
[4]
김대명
2011/01/06
3664
293
질문게시판에서 답변 잘 받는 팁(?)
[2]
박종훈
2006/04/21
4425
LIST ALL
Prev
[1]
2
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
..
[14]
Next
Copyright 1999-2024
Zeroboard
/ skin by
reedyfox
in
miniwini
style
지우개 Expert 3.0
제작자 : 천호성 님 [
LINK
]
대박로또2005
제작자 : 최재일 님 [
LINK
]
1
박종훈
님
15292 점
2
지상현
님
8809 점
3
손상진
님
7388 점
4
권선중
님
6060 점
5
이진백
님
5174 점
가입일
닉네임
05/31
김동률
03/31
홍형기
09/01
o00pp99oo
12/27
이재민
11/20
이희철
.
.
.