ÔÚDelphiºÍVCÖд´½¨ºÍµ÷Óö¯Ì¬Á´½Ó¿â
´ó¼ÒÔÚÈí¼þ¿ª·¢Ê±¾³£»áÓöµ½ÕâÑùµÄÇé¿ö£¬ÔÚ²»Í¬µÄ¿ª·¢»·¾³ÖÐΪʵÏÖһЩ¹¦ÄÜÏàͬµÄ¹ý³Ì£¬ÓÉÓÚ¿ª·¢ËùʹÓõÄÉè¼ÆÓïÑÔ²»Í¬£¬Òò¶ø²»µÃ²»±àдÐí¶àÀàËÆµÄ´úÂ룬ÉõÖÁÓÐʱҪÔÚͬһ¸ö¿ª·¢»·¾³²»Í¬ÏîÄ¿ÖÐÖØÐ´´úÂ룬Õâ¾ÍÔì³ÉÁ˺ܴóµÄ×ÊÔ´ÀË·Ñ¡£¶¯Ì¬Á´½Ó¿âÄܽϺõĽâ¾öÕâ¸öÎÊÌâ£¬ÖØ¸´ÀûÓôúÂ뽫´ó´óÌá¸ßÁË¿ª·¢Ð§ÂÊ¡£Ò»°ã£¬Óû§ÔÚÓ¦ÓóÌÐòÖлùÓÚÈçÏÂÒªÇó´´½¨ºÍʹÓÃDLL£º
¡¡¡¡1. ÔÚ²»Í¬µÄ¿ÉÖ´ÐÐÎļþÖ®¼ä¹²ÏíµÄ³ÌÐò£»
¡¡¡¡2. ÔÚÉè¼ÆÓ¦ÓóÌÐòʱ£¬½«Æä²ð·Ö³É¸÷¸öÏ໥¶ÀÁ¢¹¦Äܲ¿¼þ£¬ÎªÒÔºóÕâЩ¹¦Äܲ¿¼þ¸÷×ÔÉý¼¶Ìṩ·½±ãµÄ;¾¶¡£
¡¡¡¡¶¯Ì¬Á´½Ó¿â½«¹²Ïí³ÌÐò»ò¹¦Äܲ¿¼þ×ö³É¿âÖеĺ¯Êý£¬ÐγÉDLLÎļþ£¬ÆäËüÓ¦ÓóÌÐòͨ¹ýʹÓÃDLLµ÷ÓÃÕâЩº¯Êý¡£ÔÚÕâÀォ¶ÔDelphiºÍVCÖд´½¨ºÍʹÓö¯Ì¬Á´½Ó¿âµÄ·½·¨×öÒ»½éÉÜ¡£DelphiºÍVC¶¨ÒåµÄ¶¯Ì¬Á´½Ó¿â¾ù¿ÉÔÚÁ½ÕߵĿª·¢»·¾³ÖÐʹÓá£
¡¡¡¡Ò»¡¢ ÓÃDelphi´´½¨DLL
¡¡¡¡DelphiµÄDLL´´½¨²¢²»¸´ÔÓ£¬ÏÂÃæÏò´ó¼Ò½éÉÜDelphiµÄDLL´´½¨·½·¨¡£
¡¡¡¡£¨1£©Ê×ÏÈ´´½¨Ò»¸öеÄDLLÏîÄ¿(NewProject)project1£¬ÎļþÍ·²¿Îª£º
library Project1;
¡¡¡¡£¨2£©USESÓï¾äºóÃæ¼ÓÈëExPortsÓï¾ä£¬Ö¸Ã÷µ÷ÓÃDLLµÄº¯ÊýÃû£¬ÐÎʽΪ£º
exports
checkpwd name 'checkpwd';
¡¡¡¡£¨3£©ÔÚDLLµÄPasÎļþÖÐType......Endºó¼ÓÈë¸ÃDLLµÄº¯Êý»ò¹ý³ÌµÄÉùÃ÷£¬ÐÎʽÈçÏ£º
FunctionName(argment):Boolean;export;
¡¡¡¡
¡¡¡¡¸Ãº¯ÊýÒ²¿ÉÒÔ´æÔÚÓÚÁíÒ»¸öpasÎļþÖУ¨ÈçUnit1.pas£©£¬´ËʱֻÐèÔÚÏîÄ¿ÎļþÖмÓÈ룺
uses
Unit1 in 'Unit1.pas' {Form1};
¡¡¡¡ÖµµÃ×¢ÒâµÄÊÇ£¬¸Ãº¯Êý»ò¹ý³ÌÓ¦¼ÓÈë´°ÌåµÄCreateºÍFree(²úÉúºÍÊÍ·Å)·½·¨¡£
¡¡¡¡£¨4£©¶ÔÏîÄ¿½øÐбàÒë¼´ÐγÉDLLÎļþ£¬¿É±»ÆäËüÏîÄ¿µ÷Óá£
¶þ¡¢DelphiÖÐDLLµÄµ÷ÓÃ
¡¡¡¡µ÷ÓÃDLLÓÐÁ½ÖÖ·½·¨£¬Ò»ÖÖÊÇÔÚÓ¦ÓóÌÐò×°ÔØÊ±µ÷Óã¬ÁíÒ»ÖÖÊÇÔÚÓ¦ÓóÌÐòÔËÐÐʱµ÷Óá£
¡¡¡¡(1) ×°ÔØÊ±µ÷ÓÃDLL
¡¡¡¡ÔÚµ÷ÓÃDLLµÄPasÎļþÖУ¬¶ÔDLLº¯Êý½øÐÐÍⲿÉùÃ÷£¬ÉùÃ÷ӦλÓÚImplementationºó£¬ÐÎʽÈçÏ£º
Implementation
Function functionname(argment):Boolean;far;External 'DllName';
¡¡¡¡
¡¡¡¡ÆäÖÐExternal¹Ø¼ü×ÖºóÃæµÄÒýºÅÄÚÊÇDLLµÄÎļþÃû£¬¸ÃÎļþÒ»°ãÓ¦·ÅÔÚϵͳµÄsystemĿ¼Ï£¬»òÓëµ÷ÓÃËüµÄÏîĿͬһĿ¼¡£ÉùÃ÷ÒÔºó¼´¿ÉÔÚPasÎļþÈκεط½ÒýÓÃDLLº¯Êý¡£
¡¡¡¡×°ÔØÊ±µ÷ÓÃDLLµÄÓŵãÊÇËٶȽϿ죬³ÌÐò¼äÒ²¿É¹²Ïí´úÂë¡£
¡¡¡¡(2) ÔËÐÐʱµ÷ÓÃDLL
¡¡¡¡DLLµÄÁíÒ»ÖÖµ÷Ó÷½·¨ÊÇÔÚÔËÐÐʱµ÷Óá£ÕâÖÖ·½·¨Òªµ÷Óõ½WindowsµÄAPIº¯ÊýLoadLibrary£¬GetProcAddress£¬FreeLibrar
Ïà¹ØÎĵµ£º
1.Round£¨ËÄÉáÁùÈëÎåÁôË«£©
¹¦ÄÜ˵Ã÷£º¶ÔÒ»¸öʵÊý½øÐÐËÄÉáÎåÈë¡£(°´ÕÕÒøÐмÒËã·¨)
Àý£º
var
i, j: Integer;
begin
i := Round(1.5); // iµÈÓÚ2
j := Round(2.5); // jµÈÓÚ2
end;
ÔÚDelphiÖÐʹÓÃRoundº¯ÊýµÃµ½µÄ´ð°¸ÓÐʱÓëÎÒÃÇËùÔ¤ÆÚµÄ»á²»Ì«Ò»Ñù£º²ÉÓõÄÊÇËÄÉáÁùÈëÎåÁôË«¡£¼´µ±Éá»òÈëλ´óÓÚ»òСÓÚÎåÊ ......
var
ExcelFile:string;
SourceRange,DesRange:Variant;
Row,Column,i:integer;
begin
if OpenDialog1.Execute then
begin
ExcelFile:=OpenDialog1.Files[0];
if not FileExists(ExcelFile) then Exit;
end
else
Exit;
try
ExcelApp:=CreateOleObject('Excel.Application');
......
ÓÃVC++6.0±àдÁËÒ»¸ö¼òµ¥µÄdll£¬ÀïÃæ°üº¬Ò»¸ö¼õ·¨º¯Êýsubtract(int a,int b)£¬DllÃüÃûΪff.Dll
´úÂëÈçÏ£º
1.ff.cpp:
// ff.cpp : Defines the entry point for the DLL application.
//
#include "StdAfx.h"
#include "ff.h"
BOOL APIENTRY DllMain( HANDLE hModule,
......
Delphi ÖÐÈçºÎ°²×°×é¼þ?
delphiÖÐÈçºÎ°²×°×é¼þÓÐÎåÖÖÇé¿ö£º
1¡¢Ö»ÓÐÒ»¸öDCUÎļþµÄ×é¼þ¡£DCUÎļþÊDZàÒëºÃµÄµ¥ÔªÎļþ£¬ÕâÑùµÄ×é¼þÊÇ×÷Õß²»Ïë°ÑÔ´Â빫²¼¡£Ò»°ãÀ´Ëµ£¬×÷Õß±ØÐë˵Ã÷´Ë×é¼þÊʺÏDelphiµÄÄÄÖÖ°æ±¾£¬Èç¹û°æ±¾²»¶Ô£¬ÔÚ°²×°Ê±¾Í»á³öÏÖ´íÎó¡£Ò²ÕýÊÇÒòΪûÓÐÔ´Â룬¸øÊ¹ÓÃÕß´øÀ´Á˲»±ã£¬ÄǾÍÊÇÒ»µ©Delphi°æ±¾Éý¼¶£¬´Ë× ......
ÒÔÏÂÊÇÔÚÍøÉÏÊÕ¼¯µÄһЩ¶ÔÎÞÀàÐͲÎÊýµÄ˵Ã÷.¸öÈËÀí½âÎÞÀàÐͱäÁ¿¾ÍÊÇÒ»¸öÖ¸Õë.
ÏóDelphiÖÐfunction Read(var Buffer; Count: Longint): Longint; override;ÏóBufferÕâÑùûÓÐÀàÐ͵IJÎÊý¾¿¾¹Ó¦¸ÃÔõô¸ø²ÎÊý£¿£¿£¿£¿
Õâ˵Ã÷BufferÊÇͨ¹ýµØÖ··½Ê½´«µÝµÄ£¬Ò»°ã˵À´Ö» ......