procedure TForm1.FormCreate(Sender: TObject);
var
srcKey,desValue:string;
tmp:Pchar;
begin
srcKey:=GetRegStr('BsDataProvider');
Base642TextA(Pchar(srcKey),tmp,1); //tmp 没有值啊,如果是变参,那在你的函数声明中并没有体现啊~~procedure Base642TextA(srcBase:LPCSTR;desText:LPSTR;flag:DWORD);far;External 'DMPUBAPI.dll';
//是否用var来声明 destest呢??
var
srcKey,desValue:string;
tmp:Pchar;
begin
srcKey:=GetRegStr('BsDataProvider');
Base642TextA(Pchar(srcKey),tmp,1); //tmp 没有值啊,如果是变参,那在你的函数声明中并没有体现啊~~procedure Base642TextA(srcBase:LPCSTR;desText:LPSTR;flag:DWORD);far;External 'DMPUBAPI.dll';
//是否用var来声明 destest呢??
解决方案 »
- 用 NativeXml 创建一个XML文档时,汉字无法保存?
- 谁有通用的打印代码
- 怎么连接paradox和foxpro数据库???急!
- midas三層開發中應用服務器的問題
- 新手DLL中PChar类型调用请教
- 我想让TCHART在折线图与柱状图之间切换该怎么做?
- 怎样判断程序已经运行?为什么我把程序关闭后,在进程里却没有关闭?
- 急!!HELP ME!HELP。-。。--。。-。-。(100分)
- 如何判断ComboBox1.Text的值在不在这个控件下拉列表中?
- 大家好,新手报道,请多多指教
- 怎样才能使我的某个功能模块的代码保密?
- 请问各位大侠,我编的远程文件传输程序,传输率平均为什么自由3.4KByte,有更好的方法提高传输率的吗
var
srcKey,desValue,temstr:string;
tmp:Pchar;
begin
srcKey:=GetRegStr('BsDataProvider');
tmp:=@temstr[1];
Base642TextA(Pchar(srcKey),tmp,1); //自注:程序运行到这儿出错
desValue:=Trim(temstr);
//MessageBox(handle,desValue,'ss',MB_ICONINFORMATION);end;
改成
procedure Base642TextA(srcBase:pchar;desText:pchar;flag:longint);stdcall;far;External 'DMPUBAPI.dll' name 'Base642TextA';
试试看
在dll中的函数后面加上stdcall
试试看