Õâ¶Î´úÂë´Óc++ת³ÉdelphiʱÓöµ½µÄÎÊÌâ
½ñÌìÓöµ½Ò»¶Î´úÂ룬
C++µÄд·¨ÊÇ
C/C++ code:
IClassFactory* pFactory = NULL;
pFactory->CreateInstance( NULL, riid, ppv);
ÕâÀïµÄIClassFactoryÕâ¸öinterfaceÔÚc++ºÍdelphiÀï¶¼Óж¨Ò壬createinterfaceµÄÈý¸ö²ÎÊý¾ßÌåÊÇʲô¶«Î÷¿ÉÒÔ²»ÓùÜËü
ÎÒ·Òë³ÉdelphiÈçÏ£º
Delphi(Pascal) code:
type piclassfactory=^iclassfactory;
var pfactory:piclassfactory;
pfactory.CreateInstance(nil,riid,ppv); »ò pfactory^.CreateInstance(nil,riid,ppv)
ÕâÁ½ÖÖд·¨ÔÚÓ÷´»ã±àÈí¼þ¿´µÄʱºò£¬½á¹ûÊÇÒ»ÑùµÄ¡£
µ«ÊÇʵ¼Êµ÷ÊÔʱ·¢ÏÖ
delphiµÄд·¨ÓÐÎÊÌâ
Èçc++µÄ´úÂë±àÒëÍêºóÓ¦¸ÃÊÇ
Assembly code:
.text:004F1728 10C mov esi, esp
.text:004F172A 10C mov eax, [ebp+arg_C]
.text:004F172D 10C push eax
.text:004F172E 110 mov ecx, [ebp+arg_8]
.text:004F1731 110 push ecx
.text:004F1732 114 push 0
.text:004F1734 118 mov edx, [ebp+pfactory]
.text:004F1737 118 mov eax, [edx]
.text:004F1739 118 mov ecx, [ebp+pfactory]
.text:004F173C 118 push ecx
.text:004F173D 11C mov edx, [eax+0Ch]
.text:004F1740 11C call edx
µ«
Ïà¹ØÎÊ´ð£º
ÇëÎʸ÷λ¸ßÊÖÈçºÎÓÃC/C++»ñµÃϵͳδ°²×°²¹¶¡
ºÃÏñºÜרҵµÄ¶«Î÷¡£¡£¡£
²é×¢²á±í
ÿ¸ö²¹¶¡Èç¹û°²×°Á˶¼»áÔÚ×¢²á±íÀïÃæµÇ¼Ç
ÇëÎÊÄܲ»ÄܸüÇåÎúЩ£¬ÎÒÏëÓÃc\c++²é³öÀ´£¬²»ºÃÒâ˼£¬ÎÒÊÇÐÂÊÖ¡£»¹ÍûÖ¸½Ì¡£Ð»
·ÖÖµ ......
½ÓÊÕµ½µÄÎı¾ÄÚÈÝÊÇucs2±àÂë¸ñʽ£¬ÇëÎÊÔõÑùת»»³ÉÖÐÎÄ
°´ÎÒµÄÀí½â£¬UCS-2ÊÇ×Ö·û¼¯£¬¾ßÌåµÄ±àÂëÓÐUTF-8£¬UTF-16 (LE/BE)µÈ¡£
Èç¹ûÄãÓÃDelphi 2009¼°ÒÔÉϰ汾£¬¿ÉÒÔ¿´¿´TEncodingÀà¡£
btw. Äã˵µÄת»»³ÉÖÐÎÄÊÇɶÒâË ......
procedure RunFunction;
type
TFunc = function(A: Integer): Integer;stdcall;¡¡//ÕâÀï¸ù¾ÝDLLÀïÃæº¯ÊýµÄÉùÃ÷ÐÞ¸Ä
var
......
×òÍíÔÚDelphiÊý¾Ý¿â²éѯÖÐÓöµ½ÁËÒ»¸öÒɻ󡣴úÂëÈçÏ£º
procedure TFormSearchAchievement.ComboBoxXYChange(Sender: TObject);
var
XY : string;
begin
XY := comboboxxy.Items[comboboxx ......
ÇëÎÊDelphiÓÐÊ÷ÐοؼþÂð£¿
ÔõÑùʹÓã¿
Ttreeview
treeview.items.addchild(nil(Éϼ¶½Úµã),'°¸·¢Ê±·¢'(text));
raize ¿Ø¼þ°üÀïÃæÓУ¬csdnÓÐÏÂÔØµÄ
²é°ïÖúTTreeViewºÍTNodeÁ½¸öÀà
TTreeView ......