MFC中dll静态加载提示 error LNK2001: unresolved external symbol
求助:MFC中dll静态加载提示 error LNK2001: unresolved external symbol
我在DLL里面 写了
//R.h
#define R_API __stdcall
extern "C" int R_API R_Open(void);
并写了def文件来声明为导出函数
R_Open @1
然后在MFC程序头文件里做如下声明:(R.lib和R.dll已拷贝到当前程序)
#include "R.h"
#pragma comment (lib, "R.lib")
#define R_API_Import __declspec(dllimport)
extern "C" RPU_API_Import RPU_Open(void);
并在MFC程序中直接调用R_Open
结果编译的时候出现:
Linking...
R_TestDlg.obj : error LNK2001: unresolved external symbol __imp__R_Open
在网上找了好一会 也没解决 只有来这里求大家给帮忙看看了,谢谢啦。
------解决方案--------------------
并写了def文件来声明为导出函数
R_Open @1
该函数导出为__imp__R_Open@1,把def去掉,.h中直接声明导出即可。另外,你的函数居然没有返回!
------解决方案--------------------
你看下向导生成的导出的例子吧
dll 里面有宏定义是导出,没有宏定义是导入
没必要一个接口还整2遍定义,累啊
头文件是干啥的,就是干这个的啊
我在DLL里面 写了
//R.h
#define R_API __stdcall
extern "C" int R_API R_Open(void);
并写了def文件来声明为导出函数
R_Open @1
然后在MFC程序头文件里做如下声明:(R.lib和R.dll已拷贝到当前程序)
#include "R.h"
#pragma comment (lib, "R.lib")
#define R_API_Import __declspec(dllimport)
extern "C" RPU_API_Import RPU_Open(void);
并在MFC程序中直接调用R_Open
结果编译的时候出现:
Linking...
R_TestDlg.obj : error LNK2001: unresolved external symbol __imp__R_Open
在网上找了好一会 也没解决 只有来这里求大家给帮忙看看了,谢谢啦。
------解决方案--------------------
并写了def文件来声明为导出函数
R_Open @1
该函数导出为__imp__R_Open@1,把def去掉,.h中直接声明导出即可。另外,你的函数居然没有返回!
------解决方案--------------------
你看下向导生成的导出的例子吧
dll 里面有宏定义是导出,没有宏定义是导入
没必要一个接口还整2遍定义,累啊
头文件是干啥的,就是干这个的啊