【DLL】C调用pascal编译的DLL
pascal吧
全部回复
仅看楼主
level 12
jiawenboasd 楼主
今天尝试了一下Pascal编译dll,写了个简单的,然后在C中LoadLibrary,直接返回NULL,怎么回事[郁闷]求大神解释
2014年11月05日 11点11分 1
level 12
jiawenboasd 楼主
p.s. rundll32可以执行
2014年11月05日 12点11分 2
level 12
你不贴代码出来,别人怎么知道是怎么回事呢
2014年11月10日 07点11分 3
level 12
jiawenboasd 楼主
library pdll;
procedure writefile;cdecl;
var res:text;
begin
assign(res,*C:\dll.txt*);
rewrite(res);
writeln(res, *success in cdecl*);
close(res);
end;
procedure writefile2; stdcall;
var tx:text;
begin
assign(tx,*C:\dll2.txt*);
rewrite(tx);
writeln(tx,* success in stdcall*);
end;
exports
writefile,
writefile2;
end.
LoadLibrary返回NULL
2014年11月10日 11点11分 4
level 13
@jiawenboasd 我好像挖坟了
2015年11月14日 05点11分 8
[哈哈]没事,反正这问题还没下文
2015年11月14日 06点11分
@jiawenboasd 既然被挖就说一句,stdcall和pascal调用约定是不同的。
2015年11月16日 06点11分
@ax_pokl 听不太懂啊。我现在知道C是如何调用函数的,pascal还真不太懂
2015年11月16日 13点11分
@jiawenboasd 用Pascal条用API和C的dll是家常便饭了,毕竟我是主Pascal的。之前有过为了参赛导出stdcall的dll给C用,别人说能通过我就没有去研究了。反正主要是注意以下调用约定就行了。当然函数的命名约定可能会有些不同,C会加一些坑爹的东西在前面且区分大小写。
2015年11月16日 15点11分
1