- 积分
- 0
- 注册时间
- 2005-7-18
- 仿真币
-
- 最后登录
- 1970-1-1
|
创建一个新的DLL project,代码为:
------------------------------------------------------
Module SimpleDLL
implicit none
contains
Function ADD(a, b)
!DEC$ ATTRIBUTES DLLEXPORT :: ADD
integer, intent(in)::a, b
integer::ADD
ADD=a+b
end Function ADD
end module SimpleDLL
-------------------------------------------------------
compile+link,无问题。
再创建一个console application,名为TestDLL。
并将simpleDLL.dll和simpleDLL.lib拷贝到该工作目录下。
并在project settings中Object/library modules中加入SimpleDLL.lib
TestDLL的代码为
-------------------------------------------------------
program TestDLL
implicit none
integer a, b, c
integer, external::ADD
a=1
b=1
c=ADD(a, b)
write(*, *) c
end program TestDLL
-------------------------------------------------------
连接出现错误,
TestDLL.obj : error LNK2001: unresolved external symbol _ADD@8
求教以上步骤有何错误???
若将function换作subroutine,则可成功通过编译,为何???
[ 本帖最后由 johnkv 于 2006-8-30 01:01 编辑 ] |
|