귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
媛뺤쥖, 똻, 젙蹂 媛뺤쥖, 똻, 젙蹂 입니다.
글내용 - 媛뺤쥖, 똻, 젙蹂
 뜽뙆씠뿉꽌 VC DLL CString 궗슜
coding
(沅뚯닚샇)
2018-09-28 삤썑 1:09:58
카테고리: 똻
1028회 조회



등록된 파일이 없습니다.
떎쓬怨 媛숈씠 CString쓣 궗슜븯뒗 VC++ DLL 씠 엳쓣 븣
뜽뙆씠 履쎌뿉꽌 CString 李몄“븯뒗 諛⑸쾿쓣 쟻뼱 蹂몃떎.

// VC++ 2017뿉꽌 CString template쑝濡 援ы쁽릺뼱 엳떎.
#include "stdafx.h"
#include <atlstr.h>

CString s;

extern "C" {
    __declspec(dllexport) CString& GetCString()  // exported function
    {
        s = L"From VC CString";
        return s;  // return CString reference
    }
}


뜽뙆씠 履쎌뿉꽌 젅띁윴뒪濡 由ы꽩릺뒗 CString쓣 궗슜븯湲 쐞빐꽑

// rad 10.2.3 

implementation

type
  PCString = ^CString;
  CString = record end; // class媛 븘땶 record濡 븳 寃껋 뜽뙆씠뿉꽑 紐⑤뱺 겢옒뒪媛
                        // Implicit濡 TObject瑜 긽냽븯湲 븣臾몄뿉 遺덊븘슂 븯寃 VMT
                        // 뀒씠釉붿씠 궗슜릺湲 븣臾.

function GetCString(): PCString; cdecl; external 'test.dll' name 'GetCString';

type
  stringEx = record helper for string
    class function vc<T>(const V: T): string; static;
  end;

class function stringEx.vc<T>(const V:T): string;
begin
  Result := PChar(PDword(PDword(@V)^)^);
end;

// s 굹 Caption뿏 "From VC CString"씠 異쒕젰 맆 寃껋엫. 
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
   // instance濡 샇異 븷 닔룄 엳怨
   s := s.vc(GetCString());
   // 떎쓬怨 媛숈씠 샇異 븷 닔룄
   Caption := string.vc(GetCString());
end;


諛섎濡 VC++ 履쎌뿉꽌 뜽뙆씠 떎씠굹誘 뼱젅씠굹 string, TForm 겢옒뒪 벑쓣 븸꽭뒪븯뒗 寃껋 
template 씠슜빐꽌 뜑 돺怨 媛꾨왂븯寃 븷 닔 엳떎. 쓳슜 뒪뒪濡. 뀑뀑