找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3100|回复: 0

【DLL】【VS】为什么我编译DLL没有看到LIB文件

[复制链接]

1113

主题

1654

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
245
威望
744 点
宅币
24304 个
贡献
46222 次
宅之契约
0 份
在线时间
2302 小时
注册时间
2014-1-26
发表于 2014-3-25 01:31:51 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
其实是因为你的DLL没有任何输出。你要做的就是在DLL的头文件加上以下几句:
  1. #ifndef MY_DLL
  2. #define MY_DLL __declspec(dllimport)
  3. #else
  4. #define MY_DLL __declspec(dllexport)
  5. #endif
复制代码
请把上面的“MY_DLL”换成“自己的DLL名字_DLL
然后在你的CPP文件的#include"你的DLL头文件.H"前面加上一句#define MY_DLL __declspec(dllexport)
然后在你想要导出的符号(函数、变量、类)前声明为MY_DLL,比如我想导出以下的函数:
int dllfunc(int a);
我就要在DLL的头文件把它声明为
MY_DLL int dllfunc(int a);
然后把这个函数的实现部分写到C、CPP文件里。
比如我想导出以下变量:
int foo;
我就要在DLL的头文件把它声明为
MY_DLL int foo;
然后把这个变量的定义写到C、CPP文件里:int foo;
比如我想导出以下类:
class bar;
{
protected:
    int m_nCount;
public:
    void foobar(int a);
}

我就要在DLL的头文件把它声明为
class MY_DLL bar;
{
protected:
    int m_nCount;
public:
    void foobar(int a);
}

然后把其中不需要公开、不需要内联优化、比较复杂的函数的实现写到CPP文件里。
回复

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-5-14 15:34 , Processed in 0.037576 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表