您的位置:程序门 -> vc/mfc -> 进程/线程/dll



无法调用dll


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


无法调用dll[已结贴,结贴人:accton_mike]
发表于:2008-01-03 11:55:31 楼主
附件目录如下:
ffraymarine.dll
ffraymarine.h
ffraymarine.lib
ffraymarine.libx

使用静态调用project/project   setting/link/object/library   modules:   ffraymarine.lib
尝试过以下两种方式
extern   "c"     int   _stdcall   validate(char   *strserialnumber);

_declspec(dllimport)   int   _stdcall   validate(char   *strserialnumber);
都无法通过编译
请大虾们指教!
该帖包含附件:
发表于:2008-01-03 12:13:361楼 得分:10
这个lib文件应该只是符号,没有代码,这种情况只能使用隐式链接,dll文件是必须的。如果需要静态链接,必须修改编译选项重新编译ffraymarine项目。
发表于:2008-01-03 13:20:582楼 得分:0
不管怎么说,编译都通不过还是有问题。还是考虑调用规范吧。或者char的类型问题。
发表于:2008-01-03 13:45:143楼 得分:30
typedef   int(__stdcall   *validate)(char*);
validate   pvalidate;
hinstance   hdll   =   ::loadlibrary("ffraymarine.dll");
if   (hdll   !=   null)
{
        pvalidate   =   (validate)getprocaddress(hdll,"validate");
if   (pvalidate   !=   null)
{
int   result   =   pvalidate("test");;
cstring   str;
str.format("%d",result);
messagebox(str);
}
freelibrary(hdll);
}


快速检索

最新资讯
热门点击