.h生成DLL文件

qizhg 2007-08-15 02:24:23
现在有DXXXLIB.H文件,我怎么才能把它编译成DLL文件,让其它程序可以引用其中的函数,本人不会C++,请说明过程。
...全文
743 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
做鸡真好吃 2007-09-09
  • 打赏
  • 举报
回复
mark~
iambic 2007-08-16
  • 打赏
  • 举报
回复
误用。
iambic 2007-08-16
  • 打赏
  • 举报
回复
楼主应该是滥用了.h和.c。
hoholine2007 2007-08-16
  • 打赏
  • 举报
回复
关注........
星羽 2007-08-16
  • 打赏
  • 举报
回复

如果实现都放在.h里,那还有dll干什么,直接include就可以用了
qizhg 2007-08-16
  • 打赏
  • 举报
回复
非常感谢seysey() 的回复,我还是有点不明白,如果我的一个.H文件名叫作XX.H,在程序中应该包括这个文件啊,我用的是2005,按你的作了编译没通过
qizhg 2007-08-16
  • 打赏
  • 举报
回复
老板让我用语音卡(Intel Dialogic 语音卡)开发个电话查询的东西,给的是.h的东东,我对C++一点不了解,以前开发用的是PB和C#,给我的期限是1个月,如果学C++,一个月我有可能完成任务么。
qizhg 2007-08-16
  • 打赏
  • 举报
回复
考过去没问题了,可是调用函数时提示“错误 15 error LNK2028: 无法解析的标记(0A00000E) "extern "C" int __cdecl gc_AcceptCall(long,int,unsigned long)”
是不是不光头文件,还得有对应得库文件啊
seysey 2007-08-16
  • 打赏
  • 举报
回复
你把涉及到的.h文件都放到你安装vs2005目录下好像是vc7的stl的include文件夹下。然后不用管目录了,直接#include "****.h"就可以了
lidongri 2007-08-16
  • 打赏
  • 举报
回复
然后再仔细做一遍他的习题
lidongri 2007-08-16
  • 打赏
  • 举报
回复
看一遍c++ primer
你就会明白许多
qizhg 2007-08-16
  • 打赏
  • 举报
回复
看来我是真不适合用C++,越来越迷糊了,应该先找本最简单的书看看,在问个问题吧,我怎么引用.H,我把我用的那个GCLIB.H拷贝到新建的项目目录用#INCLUDE GCLIB.H,但在GCLIB.H里还有好多#INCLUDE XXX.H我都要拷贝过来啊,能不能指定一下目录,我什么也库用考,就想引用"stdafx.h"那样引用那些外部的头文件啊
seysey 2007-08-16
  • 打赏
  • 举报
回复
第一个注意的地方:建立一个dynamic-link library工程,而不是其他类型的工程,
第二个注意的地方,包含的头文件路径要正确。如果dlltest和使用dll的工程exetest在同一 个目录下,那用我上面的头文件路径就可以
第三个注意的地方,把生成的dll文件拷贝到要用的主函数中,和其他.cpp,.h放一起
第四个注意的地方,要用到dll中的函数的主函数中,#pragma的路径也要正确
canybox 2007-08-15
  • 打赏
  • 举报
回复
大致是楼上所说的,声明导出就可以了
seysey 2007-08-15
  • 打赏
  • 举报
回复
生成一个简单的DLL,其中有一个disp()函数。
步骤
打开VC6.0->File->New->Project->Win32 Dynamic-link library,project name: testdll
->finish
project->add to project->new->C/C++ Header File. .h name: testdll
project->add to project->new->C++ source File. .cpp name: testdll
************************************************************************
.h内容:
#ifdef DLL_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
extern "C" DLL_API void disp();

××××××××××××××××××××××××××××××××××××××
.cpp内容
#include "testdll.h"
#include "iostream"
void disp()
{
printf("testdll->disp()\n");
}
×××××××××××××××××××××××××××××××××
编译链接后,在debug目录下出现testdll.lib和testdll.dll。
然后你哪个程序要用,就把testdll.dll拷贝到该工程目录下,并且在该工程目录头文件中包含testdll.h头文件,如#include "../testdll/testdll.h"
程序中加入#pragma comment(lib, "..\\testdll\\debug\\testdll.lib")
就可以直接在程序中调用disp了。
qizhg 2007-08-15
  • 打赏
  • 举报
回复
那在c++中用#include .h 怎么就能使用里面的函数啊,我也想用这些函数,但我不会C++,所以想怎么把它变成DLL,我好用别的调这些函数
hzcpig 2007-08-15
  • 打赏
  • 举报
回复
.h只是头文件....不能生成dll....
qizhg 2007-08-15
  • 打赏
  • 举报
回复
我的问题怎么没人回答啊,是不能这么实现还是很难实现啊

65,180

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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