首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DLL基础请问

2012-03-03 
DLL基础请教?我有个单元,里面有一些函数,直接调试这些函数都没有问题,但是直接将这个单元编译成DLL,一些函

DLL基础请教?
我有个单元,里面有一些函数,直接调试这些函数都没有问题,但是直接将这个单元编译成DLL,一些函数就不能执行.
例如   函数  
function   ReverseStr(Value:   string):   string;
var
    s:   string;
    i:   Integer;
begin
    s   :=   ' ';
    for   i   :=   1   to   Length(Value)   do            
    begin                                                              
        Insert(Value[i],s,i);                          
    end;                                                
    Result   :=   s;
end;
就不能编译成DLL执行.请问在编写DLL时候,一些数据类型是不是要转换?在编译DLL时候有那些需要注意的问题?   谢谢

[解决办法]
首先看你写的DLL输出函数有没有你想输出的函数啦


例如DLL中

exports
ReverseStr;

接着你看你的ReverseStr函数中有无传值过来 如传值的话再看

你的程序有无调用

function ReverseStr;external '是你DLL的名字 ' ;

按步骤来 一切搞定 ~~~



[解决办法]
function ReverseStr(Value: string): string;
参数不要用String类型,要用PChar,做成DLL最好声明时加stdcall指示字。
[解决办法]
stdcallRight-to-left

自右向左 DLL调用的时候可以考虑写成回调函数

TReverseStr = function (Value: PChar)): PChar;stdcall;

然后在你的调用的地方声明一个

var
ReverseStr: TReverseStr;

这样就可以直接调用ReverseStr了~~

热点排行