DELPHIµ÷ÓÃVC±àдµÄDLL º¯Êý²ÎÊýΪLPTSTR
×¢Òâµã£ºLPTSTR ¶ÔÓ¦µÄÊÇPAnsiChar »òÕßPWideChar ÄãÎÊÎÊËûµÄ±àÒëÑ¡Ïî,ÒªÊǶ¨ÒåÁËunicode¾ÍÊÇPWideChar ·ñÔòÊÇPAnsiChar
ÕâÀïÎÒÊÇÓÃUNICODE±à³ÌµÄ£¬ËùÒÔÓõ½µÄÊÇPWideChar
ÔÚVCдµÄA.dllÀïÌí¼ÓÒ»¸öº¯ÊýΪ
extern "C" __declspec(dllexport) LPTSTR WINAPI Do(LPTSTR i)
{
return i;
}
ÔÚDELPHIµ÷ÓÃΪ
type
TDoFunc=function(str:PWideChar) :PWideChar;stdcall;
var
Th:Thandle;
TDo:TDoFunc;
Tp:TFarProc;
str:PWideChar;
strA,strB:PWideChar;
begin
Th:=LoadLibrary('A.dll'); {×°ÔØDLL}
if Th>0 then
try
Tp:=GetProcAddress(Th,PChar('_Do@4'));
if Tp<>nil
then begin
TDo:=TDoFunc(Tp);
strA:='bread';
str:=TDo(strA);
ShowMessage(str);
end
else
ShowMessage('ûÓÐÕÒµ½º¯Êý');
finally
FreeLibrary(Th); {ÊÍ·ÅDLL}
end
else
ShowMessage('dllÎļþûÕÒµ½');
end;
ÕâÑù¾ÍOKÁË£¬(*^__^*) ÎûÎû
ºÃ¿ªÐÄŶ£¬ÓÖ½â¾öÁËÒ»¸öÎÊÌâ
Ïà¹ØÎĵµ£º
ÎÒÒ»¿ªÊ¼ÒÔΪ£¬½«±íµ¥ÉèÖÃΪÒþ²Ø£¬¿ÉÒÔÔÚ±íµ¥´´½¨Ê¼þÖм´FormCreate(Sender:TObject)È¥ÉèÖÃ
Òò´Ë£¬ ÎÒÔÚÕâ¸öprocedure TForm.FormCreate(Sender:TObject)ÖУ¬
ÏëÓÃÒ»ÏÂÁ½ÖÖ·½Ê½ÊµÏÖ
¼´£º
µ÷ÓÃ from.Hi ......
Ò»¸öºÜ¼òµ¥µÄÎÊÌ⣬µ«ÎÒÆ¾ÎÒѧϰC++/VCÒ»Äê¶à£¬½Ó´¥DelphiµÄʱ¼äÒ²²»¶ÌÁË£¬µ«ÈÔȻд²»³öÀ´¡£
±¾À´ÒÔΪ£¬²»¾ÍÊǽ«Form1.ShowºÍForm1.Hideô£¬µ«È´¾ÍÊÇ´ïµ½²»µ½×Ô¼ºÏëÒªµÄ½á¹û
Õâ¸öÎÊÌâµ¹²»ÓÃ×÷ÉîÈëÑо¿ÁË£¬µ½ÊÇÈÃÎÒ·¢ÏÖ£¬DelphiÒ²²»ÊÇÐÅÊÖÕªÀ´£¬Ê²Ã´¶¼ÊÇÄÇôÈÝÒ׵ģ¬ÒÔΪ×Ô¼ºÓеã¶ùVCµÄµ××Ó£¬¾ÍС¿´ÁËDelphi¡£
×î½üÒ»¶Îʱ ......
......
Delphi ActiveX FormµÄʹÓÃʵÀý
By knityster
1. ActiveX¿Ø¼þ¼ò½é
ActiveX¿Ø¼þÒ²¾ÍÊÇÒ»°ãËù˵µÄOCX¿Ø¼þ£¬ËüÊÇActiveX¼¼ÊõµÄÒ»²¿·Ö¡£
ActiveX¿Ø¼þ¿ÉÒÔ±»¼¯³Éµ½ºÜ¶àÖ§³ÖActiveXµÄÓ¦Óõ±ÖÐÈ¥£¬»òÕßÖ±½ÓÓÃÀ´À©Õ¹Ó¦ÓõŦÄÜ£¬ÕâЩ֧³ÖActiveXµÄÓ¦ÓðüÀ¨C++ Builder¡¢Delphi¡¢Visual dBASE¡¢ Visual Basic¡¢Visual C++¡ ......
procedure TForm1.Button1Click(Sender: TObject);
Var
Num: Integer;
Begin
Try
Num:=StrToInt(Edit1.Text);
Edit2.Text:=IntToStr(Num*Num);
Except
On EConvertError Do ShowMessage(Edit1.Text+'ÎÞ·¨×ª³ÉÕûÊý!');
......