VCÖе÷ÓÃDelphiµÄDLLÖеĻص÷º¯ÊýÀý×Ó
//Delphi²¿·Ö
//»Øµ÷º¯Êý¶¨Òå
type TOnMyCallBack = procedure(data:pchar; id:Integer);stdcall;
//DLLÖеĵ¼³öº¯ÊýÉùÃ÷
procedure StartCall(param: TOnMyCallBack(data:pchar; id:Integer);stdcall;
begin
...
...
end;
-----------------------------------------------------------------------------------------------------------------------------
//vcµ÷Óò¿·Ö
typedef void (CALLBACK *MY_CallBack)(void *, char *data, int id);
void CALLBACK cxxGetDllData(void *data, int id)
{
CString ss;
ss.Format("%s:%d", data, id);
::MessageBox(NULL, "ÊÕµ½Êý¾Ý:", ss, MB_OK | MB_ICONWARNING);
}
void CTttDlg::OnOK()
{
//¶¯Ì¬¼ÓÔØDLLµ½µ±Ç°EXEµÄ½ø³Ì¿Õ¼ä
HINSTANCE hDll = LoadLibrary("d:\\temp\\test.dll");
if(!hDll)
{
:MessageBox(NULL, "¼ÓÔØ¶¯Ì¬Á´½Ó¿âʧ°Ü£¡", "Notice", MB_OK | MB_ICONWARNING);
return ;
}
MY_CallBack hStartCall = (MY_CallBack) ::GetProcAddress(hDll, "StartCall");
if(!hStartCall)
{
::MessageBox(NULL,"»ñÈ¡StartCallº¯ÊýµØÖ·´íÎó£¡","Notice",MB_ICONWARNING);
return ;
}
hStartCall(cxxGetDllData,"123456",100);
}
Ïà¹ØÎĵµ£º
ÔÚDelphiÖÐAdoϵÁпؼþʹÓÃxxxxx.Parameters.Refresh,¿ÉÒÔ»ñµÃ´æ´¢¹ý³ÌµÄReturnÖµ
ÒÔTADOStoredProcΪÀý
ADOStoredProc1.Connection := 'xxxx';
ADOStoredProc1.ProcedureName := 'XXXX';
ADOStoredProc1.Parameters.Refresh; //ˢд洢¹ý³ÌµÄ²ÎÊýÁбí
//²ÎÊý¸³Öµ
ADO ......
¡¡¡¡DelphiÓïÑÔ£¬ÎÞÂÛÊÇ´Ó¿ª·¢ËÙ¶È¡¢»¹ÊÇÔËÐÐËÙ¶È¡¢»¹ÊDZàÒëËÙ¶È¡¢»¹ÊDZàÒëÖ®ºóµÄÖ´ÐÐÎļþÌå»ý£¬¶¼ÊÇÊýÒ»Êý¶þµÄ¡£Òò´Ë±»×÷Ϊ¹²ÏíÈí¼þ¡¢¿ª·¢²úÆ·¡¢ÖÆ×÷“ÂÌÉ«Èí¼þ”µÄÊ×Ñ¡¡£µ«ÊÇ£¬ÓÉÓÚÖî¶àÔÒò£¬DelphiÖУ¬ÓÐһЩ¿Ø¼þ£¬´æÔÚһЩbug¡£²»ÂÛ¹ã´ó¼¼ÊõÈËÔ±ÈçºÎ·´Ó¦£¬Delphi¹Ù·½¾ÍÊÇ“ÊÓ¶ø²»¼û”¡£ÓÐÎÊÌ⣬È˼ ......
ÔÚDelphiÖУ¬µ÷ÓÃShowmessageºó£¬ÈçºÎʹµ¯³öµÄ¶Ô»°¿òÔÚÒ»ÃëÖÓºó×Ô¶¯¹Ø±Õ£¬¶ø²»ÓÃÊÖ¶¯È¥µãÈ·¶¨
1:ÓÃtimer¿Ø¼þµÄº¯Êý
procedure TForm1.Timer1Timer(Sender: TObject);
var
AHandle: THandle;
begin
AHandle := FindWindow('TMessageForm',
PChar(Application.Title));
if AHandle > 0 then
SendMessage( ......
µ±A D O¿ªÊ¼´¦ÀíÊý¾Ýºó£¬Ó¦ÓóÌÐò±ØÐëµÈµ½A D O´¦ÀíÍê±ÏÖ®ºó²Å¿ÉÒÔ¼ÌÐøÖ´ÐС£µ«
ÊdzýÁËͬ²½Ö´Ðз½Ê½Ö®Í⣬ A D OÒ²ÌṩÁËÒì²½Ö´Ðеķ½Ê½£¬ÔÊÐíµ±A D O´¦Àíʱ£¬
Ó¦ÓóÌÐòÈÔÈ»Äܹ»ÏȼÌÐøÖ´ÐС£¶øµ±A D O´¦ÀíÊý¾ÝÍê±ÏÖ®ºó£¬ A D O»áÒÔʼþµÄ·½
ʽ֪ͨӦÓóÌÐò£¬´ËʱӦÓóÌÐò¿ÉÒÔÔÙ¸ù¾ÝA D OÖ´ÐÐµÄ ......
£®pas ---- pascalµÄËõд, µ¥ÔªÔʼ³Ìʽµµ£¨ unit source files £©
£®dpr ---- ר°¸µµ ( project files )
£®dpk ---- °ü¹üÔʼ³Ìʽµµ/×é¼þ°ü ( package source files )
£®dfm ---- ±íµ¥µµ (¼Ç¼formµÄÄÚÈÝ,³ýÈ¥Õâ¸öÄÚÈݾ͵ÈÓÚɾ³ýÁËformÕâ¸ö±íµ¥)
£®dcu ---- ÊDZàÒëºÃµÄµ¥ÔªÎļþ.ÈôÖ»ÓÐÒ»¸ödcuÎļþ,Ôò²»ÄÜ¿´µ½Ô´´úÂë.
......