창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


질문게시판
- 반드시 검색을 하신 후 원하는 답변을 찾을 수 없을 때, 질문을 올려주세요.


LIST ALL
Posted by 박종훈2006-09-17 20:57:48, Hit : 3206
[델파이] 반환값이 있는 함수에서, 마지막에 이상한 값이;
Homepage : http://www.canxan.com/~qnrdlqkrwhdgns
File #2 : asas.rar (707.7 KB)   Download : 48
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=qna&no=1644


분류를, [기타]로 해놨으며, 제목에는 미리 '델파이' 라고 했습니다.

새로운, WebEditor 구상하는 것이 있어서 [야심차게 흐흐 -_-;]

예전에는[Web+ Editor], 표 만들기 등등이, 창조의 반복문이어서 느린감이 있었지만,
새로 구상하는 웹에디터에는, 델파이로 DLL을 만들어서,
DLL에서 반복문을 해결해서 속도 향상을 끌어낼 생각인데요..

잘 됩니다.! 그런데..
마지막에 이상한 값이 출력됩니다.

델파이측 소스 :
function aa:PChar; stdcall;


var
   i:longint;
   a:String;

begin


for i:=0 to 20000 do
  begin
    a := a+'aa'+Chr(13)+Chr(10);
  end;


aa := PChar(a);


end;


얼추 이렇습니다. -_-; [델파이를 몰라서, 그냥 인터넷에서 아는 대로 적었더니 대략 됩니다.;]
그런데, 마지막에 이상한 ,5 라는 값이 나오는데요..

왜 이런가요? 변수형이 이상해서 그런가요?
첨부파일에는, 작업한 내용입니다.


손상진   2006-09-17 PM 11:03:00  
0부터 20000까지라고 줬지만..
돌아온데이터(메모로 돌아온) 줄수를 확인해보니 4000여줄이였나 밖에 안되네요..
한마디로 짤린듯 --a..
(제 추측입니다.)
지상현   2006-09-17 PM 11:49:56  
간단히 생각해보면, a 라는 문자열은 함수 안쪽에 있습니다.
그리고 문자열이란건 실제로는 어떤 연속된 메모리 영역이며, 문자열 변수는 단지 그 첫번째 주소만을 포인트 하고 있는 일종의 포인터입니다.
그것을 강제로 PChar로 바꿔서 반환 받고, 함수가 끝났으니 문자열 a 는 파괴됩니다. 따라서 함수가 끝난 순간부터 문자열이 제대로 들어있을지에 대해서는 보장할 수 없습니다.

문자열을 정확히 다루는 언어에서는 반드시 문제가 발생합니다. 하지만 델파이는 이것을 언어 차원에서 지원해주죠. 따라서 델파이 끼리는 잘 됩니다만, 창조는 이것과 처리 방식이 달라서 문제가 생기는 것 같네요.

정확한 문자열을 반환받으려면, StrAlloc 같은 함수로 문자열을 새로 할당 받고, 그 안에 데이터를 집어넣으면 됩니다. 물론 이 경우에는 나중에 필요 없을 때 StrDispose 로 문자열 데이터를 해제해줘야 합니다.
박종훈   2006-09-18 PM 8:44:51  
일단, 시험이 끝난후에 인터넷으로 관련 정보를 찾아보고,
한번 적용해보겠습니다. ^^;
[예제 올려주신다면 저로서는 좋은데요^^;, 일단 제 힘으로 하다가
벅차다면 다시 또 질문 드리겠습니다. ^^;;]
LIST ALL               GO TO THE TOP


N
Category
   Subject
Posted by
Date
H
notice 창조   반드시 검색 후 질문을 올려주세요.<... 박종훈 2007/09/24  6158
notice 창조   단순 소스제작 부탁은 예고없이 삭제합니... [2] 손상진 2007/04/11  6011
notice 창조   답변소스 등록 관련 안내입니다. [7] 변혁수 2006/01/11  7863
2155 창조
   메모에서 마지막 글자 다음에 커서 이동
날아라KTX 2024/05/20  83
2154 창조
   메모장 자동 폭 가능할까요? [3]
날아라KTX 2024/04/29  91
2153 창조
   풍선말 글꼴, 크기
날아라KTX 2024/03/26  123
2152 창조
   네이버 증권페이지 가격 [2]
날아라KTX 2024/02/22  144
2151 창조
   문자창, 대화창 프로그램 가운데 출력하기
날아라KTX 2023/02/27  380
2150 창조
   리스트박스 질문드려요. [1]
날아라KTX 2022/10/25  429
2149 창조
   메모내용 코마를 구분으로 리스트박스에 정렬... [3]
날아라KTX 2022/10/02  437
2148 창조
   문자표 글꼴 색상 질문드려요
날아라KTX 2022/09/24  475
2147 창조
   멀티버튼이 마우스 따라다니기 [1]
날아라KTX 2022/09/17  464
2146 창조
   카카오톡 다중 접속기도 만들 수 있을까요?
김지훈 2022/04/19  665
2145 창조
   레지스트리...문제점이 뭘까요???? [3]
날아라KTX 2022/04/14  571
2144 창조
   자판을 뗄때 사건에서 띵띵소리 [1]
날아라KTX 2022/04/09  602
2143 창조
   메모 상단줄 질문드려요.
날아라KTX 2022/04/05  562
2142 창조
   폴더명추출 [1]
날아라KTX 2022/01/24  675
2141 창조
   문자표 질문드려요. [1]
날아라KTX 2021/10/19  638
2140 창조
   성인e님께서 도움주셨던 글자 찾아 색상바꾸... [5]
날아라KTX 2021/10/01  714
2139 창조
   리스트박스에 파일명+파일내용 추가하기 [3]
날아라KTX 2020/07/26  1387
2138 창조
   리스트박스 줄위치에 해당하는 버튼 클릭하기 [2]
날아라KTX 2020/03/11  1550
2137 창조
   에디트0 영역에 문자추가 삭제하기 [2]
날아라KTX 2019/10/15  1656
2136 창조
   이진읽어를 10진으로 바꾼다음에 1과 0만으로... [1]
박재성 2019/06/12  1849
2135 창조
   알파벳순서대로 정렬도 창조로 가능할까요?
날아라KTX 2019/05/12  1640
2134 창조
     [re] 알파벳순서대로 정렬도 창조로 가능할까요? [2]
성인e 2019/05/12  1965
LIST ALL   1 [2][3][4][5][6][7][8][9][10]..[87] 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/01o00pp99oo
12/27이재민
11/20이희철
로그인