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了,(*^__^*) 嘻嘻
好开心哦,又解决了一个问题
相关文档:
function ValidatePID(const APID: string): string;
{内部函数,取身份证号校验位,最后一位,对18位有效}
function GetVerifyBit(sIdentityNum: string): Char;
var
nNum: Integer;
begin
Result := #0;
nNum := StrToInt(sIdentityNum[1]) * 7 +
  ......
Delphi正则表达式学习,参考CSDN万一老师的BLOG、CSDN、网络资料以及带源码的TPerlRegEx,在此注明,以后不再说明,在些感谢Google老师和百度老师
安装:
下载地址:http://download.csdn.net/source/1668436
1、安装.dpk文件,在Libary中添加TPerlRegEx单元存放路径
2、运行程序前复制pcrelib.dll到C:\WINDOWS下 ......
作为delphi的铁杆,在正式Delphi2010推出后,我当然也要尝尝新鲜,用电驴下来以后安装。呵呵二十多分钟就搞定了,启动也特快,简单使用一下,棒棒!!看来Delphi(太阳神)又回来了,如是我决定抛弃delphi2007,用这个新家伙。我所用的第三方组件主要是RemObjects和reportbuilder,reportbuilder还没有找到安装forD2009 Ful ......
有时需要使用透明控件用于捕获鼠标消息
1.调用Windows2000,xp新的API函数实现这一功能的过程。使用SetLayeredWindowAttributes
2.直接设置控件的alphablend,alphablendvalue,间接调用上述api.
3.使用TStaticText控件
procedure WMCtrlColor(var Message: TWMCtlColor); message WM_CTLCOLOR;
procedure TForm3.WMCtr ......
服务端:添加ADOConnection,ADOQuery1,ADOQuery2。设置ADOQuery1为主表,ADOQuery2为从表。(通过 ADOQuery2.SQL.Text:= 'select * from 从表 where FKID=:主表PKID'设置)。添加DataSetProvider1和DataSetProvider2分别连接到ADOQuery1和ADOQuery2。
客户端:添加ClientDataSet1,ClientDataSet2。ClientDataS ......