ÓÃdelphiÖÆ×÷OCX¿âÎļþ£¨Èý£©
¿ª·¢²½Ö裺
1¡¢´´½¨ActiveX Library¹¤³Ì¡£
2¡¢´´½¨COM Object¡£
3¡¢´´½¨Type Library£¬²¢´´½¨ÏàÓ¦½Ó¿Ú¡£
4¡¢´´½¨½Ó¿Ú¶ÔÓ¦µÄº¯ÊýºÍʵÏÖ¡£
¾ßÌåÈçÏ£º
3¡¢´´½¨Type Library£¬²¢´´½¨ÏàÓ¦½Ó¿Ú¡£
view|type library
ÕÒµ½ÒѾÉú³ÉµÄtype library,ÆäʵºÍTLBÎļþÊǶÔÓ¦µÄ¡£
ÎÒÃÇ¿ÉÒÔ¿´µ½ÉÏÒ»²½Éú³ÉµÄ¶ÔÏóÒ²º¬ÔÚÀïÃæ¡£
ÎÒÃÇÔÚÀïÃæÉú³ÉÐµķ½·¨£¬²¢¶¨ÒåºÃ·½·¨µÄ²ÎÊý¡£
×¢Ò⣺integerºÍStringÔÚOCXÀï¶ÔÓ¦µÄÀàÐÍ·Ö±ðΪlongºÍBStr»òÕßWideString¡£Ä¿µÄÊÇΪÁ˱ãÓÚÍøÂçÉÏ´«²¥Ê±¸÷¸öϵͳ¼æÈݵÄÐèÒª¡£
·µ»ØÖµ±ØÐëΪָÕëÀàÐÍ£¬ModifierΪ·µ»Ø±êÖ¾£¬[in]ΪÊäÈë²ÎÊý£¬[out,RetVal]ΪÊä³ö¼Ó·µ»ØÖµ¡£
ÔÚClass Name(±¾ÀýÀïÀàÃûÀïÌîObject£¬¿É°´×Ô¼ºÐèÒªÌîд) ÌîдÀàÃû.(Instancing:ʵÀý´´½¨·½Ê½,Threading Model:Ïß³Ìģʽ.) Æä
ÖÐImplemented Interface(½Ó¿ÚÃû)×Ô¶¯Éú³É.
µãˢа´Å¥Ö®ºó£¬ÔÚTLBºÍʵÏÖµ¥ÔªÀï¶¼ÓÐÁ˹ØÓÚÕâ¸ö½Ó¿Úº¯ÊýµÄ¶¨Òå¡£
ʣϵÄÖ»ÒªÔÚʵÏÖµ¥ÔªÀïÍê³ÉʵÏֵĴúÂë¼´¿É¡£
4¡¢´´½¨½Ó¿Ú¶ÔÓ¦µÄº¯ÊýºÍʵÏÖ¡£
¾ßÌåʵÏÖ¡£
type
TOjbect = class(TTypedComObject, IOjbect)
protected
function Method1(Param1, Param2: Integer; out Param3: Integer): HResult;
stdcall;
end;
implementation
uses ComServ;
function TOjbect.Method1(Param1, Param2: Integer;
out Param3: Integer): HResult;
begin
//¾ßÌåʵÏÖ
end;
Ïà¹ØÎĵµ£º
±Ï¾¹Win32³ÌÐòµÄ¿ª·¢£¬Delphi»¹ÊÇÓÐÍçÇ¿µÄÉúÃüÁ¦µÄ¡£
²Ù×÷²½ÖèÈçÏ£º
1.½¨Á¢ res Îļþ
½¨Á¢Ò»¸öÎı¾Îļþ£¬Ãû×Ö¿ÉÒÔ×Ô¼ºÆð£¬ÎÒÕâÀï½Ð£ºUAC.manifest£¬ÄÚÈÝ£º
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
......
3.2 Óû§µÇ¼·½°¸
ÔÚ½øÈëÒ»¸öϵͳʱ£¬±ØÐëÏÈÔڵǼ´°ÌåÖÐÊäÈëÕýÈ·µÄÓû§ÃûºÍÃÜÂë²ÅÄܽøÈë¡£ÕâÑù¿ÉÒÔÈ·±£ÏµÍ³µÄ°²È«ÐԺͱ£ÃÜÐÔ£¬µÇ¼´°ÌåµÄÖÆ×÷°´ÕÕϵͳµÄ´óС¼°Óô¦£¬¿ÉÒÔ·ÖΪ²»Í¬µÄµÇ¼´°ÌåÑùʽ£¬ÔÚϵͳµÚÒ»´ÎµÇ¼ǰ£¬Ê×ÏÈÒª¶Ô²Ù×÷Ô±ÐÅÏ¢½øÐÐÏàÓ¦µÄÉèÖᣱ¾½Ú½«¶ÔµÇ¼´°Ìå¼°²Ù×÷Ô±¹ÜÀí´°ÌåµÄÖÆ×÷¹ý³Ì½øÐÐÏêϸµÄ˵Ã÷ ......
3.2 Óû§µÇ¼·½°¸
ÔÚ½øÈëÒ»¸öϵͳʱ£¬±ØÐëÏÈÔڵǼ´°ÌåÖÐÊäÈëÕýÈ·µÄÓû§ÃûºÍÃÜÂë²ÅÄܽøÈë¡£ÕâÑù¿ÉÒÔÈ·±£ÏµÍ³µÄ°²È«ÐԺͱ£ÃÜÐÔ£¬µÇ¼´°ÌåµÄÖÆ×÷°´ÕÕϵͳµÄ´óС¼°Óô¦£¬¿ÉÒÔ·ÖΪ²»Í¬µÄµÇ¼´°ÌåÑùʽ£¬ÔÚϵͳµÚÒ»´ÎµÇ¼ǰ£¬Ê×ÏÈÒª¶Ô²Ù×÷Ô±ÐÅÏ¢½øÐÐÏàÓ¦µÄÉèÖᣱ¾½Ú½«¶ÔµÇ¼´°Ìå¼°²Ù×÷Ô±¹ÜÀí´°ÌåµÄÖÆ×÷¹ý³Ì½øÐÐÏêϸµÄ˵Ã÷ ......
ÓÉÓÚ×é¼þÌṩµÄ·½Ê½²»Í¬£¬ËùÒÔ°²×°µÄ·½·¨Ò²ÊDz»Ò»ÑùµÄ£¬ÏÂÃæ¾ÍĿǰ³£¼ûµÄ¸÷ÖÖÐÎʽµÄ×é¼þµÄ°²×°·½·¨½éÉÜһϡ£
1 Ö»ÓÐÒ»¸öDCUÎļþµÄ×é¼þ¡£DCUÎļþÊDZàÒëºÃµÄµ¥ÔªÎļþ£¬ÕâÑùµÄ×é¼þÊÇ×÷Õß²»Ïë°ÑÔ´Â빫²¼¡£Ò»°ãÀ´Ëµ£¬×÷Õß±ØÐë˵Ã÷´Ë×é¼þÊʺÏDelphiµÄÄÄÖÖ°æ±¾£¬Èç¹û°æ±¾²»¶ ......
×¢£º ʹÓôíÎ󣬻òÕßÔڸüӵĵط½Ã»Óмӣ¬¿ÉÄÜ»á³öÏÖ"privileged instruction"´íÎ󣬻òÕßµØÖ··ÃÎÊ´íÎó¡£
³£¼ûµÄµ÷ÓùßÀýÓÐregister, pascal, cdecl, stdcall, safecall¡£º¯ÊýµÄµ÷ÓùÜÀí¾ö¶¨Á˲ÎÊýÈçºÎ´«µÝ¸ø×Ó¹ý³Ì£¬²¢´Ó¶ÑÕ»ÖÐÍ˳ö£¬ÒÔ¼°¼Ä´æÆ÷ÔÚ²ÎÊý´«µÝÖеÄʹÓ㬴íÎóºÍÒì³£µÄ´¦Àí¡£DelphiÖÐĬÈϵĵ ......