想把类导出DLL。 但是Main里面没法创建对象? 报错"无法解析的外部符号?!"

baidu_28726667 2019-01-01 04:10:26
#pragma once


#ifdef DLL_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif

class ITranspor
{
public:
ITranspor();
~ITranspor();
};



#include "ITranspor.h"



ITranspor::ITranspor()
{
}


ITranspor::~ITranspor()
{
}


#include <iostream>
#include <Windows.h>
#include "../FuncDll/ITranspor.h"
#pragma comment(lib,"E:\\vccode\\TestMain\\Debug\\FuncDll.lib")

int main(int argc, char *argv[])
{
printf("Start Main");
ITranspor *Plane = new ITranspor();
system("pause");
return 0;
}




头文件有了,DLL有了,LIB打开也没有报错。。。但是创建对象就会有问题
...全文
303 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
红牛工作室 2019-01-02
  • 打赏
  • 举报
回复
本来就是要这么添加的,导出类很麻烦的一些成员变量类型是STL类,还会有警告必须有由xxx客户端创建,改成指针可以解决这种警告
schlafenhamster 2019-01-01
  • 打赏
  • 举报
回复
dll 导出的类 ,在 dll中 每新建一个类 要这么添加
baidu_28726667 2019-01-01
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
ITranspor *Plane = new ITranspor(); 要调用 构造函数 !




class __declspec(dllexport) ITranspor
{
public:
ITranspor();
~ITranspor();

void CanFly();
};

头文件改成这样就可以了,不过每新建一个类,或者继承这个类就要这么添加不就是很麻烦了?!
schlafenhamster 2019-01-01
  • 打赏
  • 举报
回复
ITranspor *Plane = new ITranspor(); 要调用 构造函数 !

15,471

社区成员

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

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