fortan 调用 vc 编译的 DLL

evil_eyes 2011-04-06 09:33:58
大家好,有个问题请教下。我有一个工程,用VC2005编译成了动态库,里面用到了STL的东西,导出方式如下

#pragma once

#ifdef DLL_API
#else
#define DLL_API extern "C" _declspec(dllimport)
#endif

DLL_API int OVERLAP_(double *PB_x, double *PB_y, int *PB_Num,/*Input*/
double *PH_x, double *PH_y, int *PH_Num,/*Input*/
double *Vertex_x, double *Vertex_y, int *VertexNum/*Output*/);

现在我想在FORTRAN POWER STATION 里面使用这个导出函数, 请问应该如何处理?谢谢!
...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
evil_eyes 2011-04-06
  • 打赏
  • 举报
回复
谢谢楼上的指点,我没有使用STL做接口,就是如贴所示用的普通数据类型。按照网上的说法做了但是不行。
oyljerry 2011-04-06
  • 打赏
  • 举报
回复
跨语言一般不要用STL等做接口,最好用基本数据类型做接口,这样其他语言才能调用
其次,参考FORTRAN ,看如何加载普通DLL,一般都有教程的
LensFlare 2011-04-06
  • 打赏
  • 举报
回复
编译器提示这两个函数没有实现,呵呵
evil_eyes 2011-04-06
  • 打赏
  • 举报
回复
还有我用其他软件看了DLL中的函数名,是对的。

#pragma once

#ifdef DLL_API
#else
#define DLL_API extern "C" _declspec(dllimport)
#endif

DLL_API int _MAXX(int a, int b);
DLL_API int _MINN(int a, int b);

这个函数应该很简单了。真郁闷!
evil_eyes 2011-04-06
  • 打赏
  • 举报
回复
编译提示如下错误
Linking...
main.obj : error LNK2001: unresolved external symbol _MINN@8
main.obj : error LNK2001: unresolved external symbol _MAXX@8
main.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
main.exe - 3 error(s), 0 warning(s)

但是我已经把LIB的路径加到FORTRAN工程里面去了。而且这个动态库经过测试是正确的。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧