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);
}
Ïà¹ØÎĵµ£º
żȻÀ´ÕÒÒ»¸öÎļþ£¬È´·¢ÏÖÕâÀï¹ØÓÚvc++ºÍDelphiµÄÌÖÂÛºÜÊǼ¤ÁÒ¡£¿´ÁË´ó¼ÒдµÄһЩ
ÎÄÕ£¬¾õµÃÓÐЩ¿´·¨ÕýÈ·£¬ÓÐЩ¾ÍºÜÆ«ÆÄÉõÖÁ´íÎó(Ò²ÐíÎÞÖª£¿ºÜ±§Ç¸ÎÒÕâÑù˵:-)¡£ÎÒ
ÎÞÒâÓëÈκÎÈËÕùÂÛ£¬¸üÔ¸Òâ°ÑÕâ¿´³ÉÊǼ¼ÊõÉϵÄÌÖÂÛ¡£Ó¦¸Ã±¾×Ź«Õý£¬²»´øÆ«¼ûµÄ̬¶È
(Õâ²¢²»Òâζ×Å·ÇҪƽ·ÖÇïÉ«£¬Ò»ÇÐÓ¦ÒÔÊÂʵΪ׼)¡£ÎÒÓùý³ýtp1ÒÔÍâµÄËùÓ ......
OracleÐÔÄÜÓÅ»¯ÓëDelphi´úÂë
¸ÕѧÁ˵ãoracle·½ÃæµÄ֪ʶ£¬¸Ð¾õÒÔǰд´úÂëֻƾϲºÃд£¬ÍêȫûÓÐÉԵÓÉ£¬µ¼ÖÂÔÚÄÚÐÐÈË¿´À´£¬Ð´µÄ¶¼ÊÇÀ¬»ø´úÂ룬ÏÖÔھͰÑѧµ½µÄһЩ¶«Î÷д³öÀ´£¬Ò²ËãÊǸø¸ÕÈëÃŵÄÅóÓÑÒ»µã°ïÖú°É¡£
ÒÔǰ£¬Ð´Êý¾Ý¿â·ÃÎÊ´úÂ룬¸Ð¾õºÜ¼òµ¥£¬²»¾ÍÊÇsqlÓï¾äÂËùÒÔʲôÓï¾ä¶¼ÊÇÕâÑùд£º
A£º
......
ÕâÑùÒ»À´£¬DelphiʹÓÃWebserviceºÍJAVAͨѶʱ£¬¿ÉÒÔ½«DELPHIµÄʱ¼äÖ±½Ó´«¸øJAVA¡£´Ó¶øÃâÈ¥ÁËʱ¼ä×Ö·û´®parseÖ®¼äµÄÏûºÄ£¬Ìá¸ßµÄ³ÌÐòЧÂÊ¡£
Delphiʱ¼äʵÖʾÍÊÇdoubleÀàÐÍ£¬ÕûÊý²¿·Ö±íʾÌ죬СÊý²¿·Ö±íʾµ±Ììʱ¼ä£¬Ã¿ºÁÃëΪ1/86400000¡£¿¼Âǵ½Ê±ÇøµÄת»»ºó£¬JAVAºÍDELPHIʱ¼äÖ®¼äµÄת»»ÀàÈçÏ£º
import java.util.Calendar ......
£®pas ---- pascalµÄËõд, µ¥ÔªÔʼ³Ìʽµµ£¨ unit source files £©
£®dpr ---- ר°¸µµ ( project files )
£®dpk ---- °ü¹üÔʼ³Ìʽµµ/×é¼þ°ü ( package source files )
£®dfm ---- ±íµ¥µµ (¼Ç¼formµÄÄÚÈÝ,³ýÈ¥Õâ¸öÄÚÈݾ͵ÈÓÚɾ³ýÁËformÕâ¸ö±íµ¥)
£®dcu ---- ÊDZàÒëºÃµÄµ¥ÔªÎļþ.ÈôÖ»ÓÐÒ»¸ödcuÎļþ,Ôò²»ÄÜ¿´µ½Ô´´úÂë.
......
½üÀ´·¢ÏÖÒ»¸öDelphiĪÃûÆäÃîµÄbug£¬µ±Ê¹ÓÃSetOptionalParamʱ£¬²»ÄÜʹÓÃÒ»Á¬´®Êý×ÖµÄ×Ö·û´®£¬Èç'101'£¬×¢Ò⣬ÊÇ´øÒýºÅµÄ¡£ÔÚSaveToFileʱ£¬¾Í»á³öÏÖ'Invalid field type'µÄÒì³££¬ÕæÊǰÙ˼²»µÃÆä½â£¡Á¬'001'ÕâÖÖ´®Ò²²»ÐУ¬È¥µôÒýºÅ£¬Ö±½Ó°´Êý×Ö¸³Öµ£¬ÔòÕý³£¡£
procedure TForm1.Button1Click(Sender: TObject);
var
  ......