VC调用DLL问题
在vc里编译成功了一个dll,怎么在另一个程序里调用它.
- 参考文章:
- 选择具有高可用性的数据库: SQL Server与Oracle对比分析 3
- 选择具有高可用性的数据库: SQL Server与Oracle对比分析 2
- 选择具有高可用性的数据库: SQL Server与Oracle对比分析 1
- Microsoft Visual Studio Team System 和 Microsoft Visual SourceSafe 之间选择
- 在 Microsoft Visual Studio Team System 和 Microsoft Visual SourceSafe 之间选择
- ASP分页函数
- 纯ASP代码生成图表函数1——柱状图调用示例
- asp中随机生成文件名的函数
- asp中加密与解密对应的函数
- 如何把ASP编写成DLL
网友回答:
hmodule loadlibrary(
lpctstr lpfilename // file name of module
);
例如
hinstance hlibrary;
hlibrary=loadlibrary("mydll.dll");
//……
freelibrary(hlibrary);
加入lib和头文件, 把dll放在exe的目录。
下面通过例子介绍如何在动态链接库中定义函数、资源、和类以及如何在工程中使用动态链接库中已定义的函数、资源、
类。
一、 函数的定义和使用方法:
第一步:
运行appwizard,定义项目名为mydll,选择mfc appwizard(dll),而不是mfc appwizards(exe)。
第二步:
在这个例子中,只有一个appwizard屏幕出现,选择mfc扩展dll(mfc extension dll (using shared mfc dll),点击
finish生成工程。
第三步:
点击file中的new,选择c/c++ header file,file name中输入dll,点击ok,创建dll.h。输入extern "c" __declspec(dllexport)
int fun(int x1,int x2,int x3); ,保存。
第四步:
点击file中的new,选择c++ source file,file name中输入dll,点击ok,创建dll.cpp。输入
#include "stdafx.h"
#include "dll.h"
extern "c" __declspec(dllexport) int fun(int x1,int x2,int x3)
{
return x1+x2+x3;
}
编译生成mydll.dll和mydll.lib。
第五步:
选择project 中add to project 中的new , 重新生成一个工程,选择mfc appwizards(exe),项目名为mydlltest , 选择single
document ,点击finish,生成一个新的工程。选择菜单中的project àset active project àmydlltest ,将mydlltest设为当前活动工程
。
第六步:
拷贝…\mydll\debug\mydll.dll 到 ..\mydlltest\debug\下,拷贝…\mydll\debug\mydll.lib到…\mydlltest\目录下。
第七步:
在mydlltestview.cpp中的#endif下添加
extern "c" __declspec(dllimport) int fun(int x1,int x2,int x3);
在void cmydlltestview::ondraw(cdc* pdc)中添加代码如下:
void cmydlltestview::ondraw(cdc* pdc)
{
cmydlltestdoc* pdoc = getdocument();
assert_valid(pdoc);
// todo: add draw code for native data here
int x=fun(1,2,3);
cstring str;
str.format("%d",str);
pdc->textout(10,10,x);
}
第八步:
在workspace中的mydlltest files上点击右键,选择add files to project ,将mydll.dll添加到工程。
好了,我们的工作做完了,运行一下看看吧!
包含h和dll到project
然后loadlibrary加载dll文件,getprocaddress获得函数地址,调用函数
如果已经生成了一个dll,那么直接在工程里的:project下的settings里的link下加入dll的*.lib.注意了,把动态库拷进你的工程目录下呀
如果要是在vb下生成的activex dll该怎么调用?
我只作过在dephi中调用c++的dll
loadlibrary 具体的可以看csdn
.- 更多文章:
- 谁能告诉我一个jcreator注册码?万分感谢...祝各位生活,工作顺利!
- 谁能告诉我一个jcreator注册码?万分感谢...祝各位生活,工作顺利!
- 救命
- 大家好,是中国人的来看看啊!!!
- 求救 db2 问题
- 关于门户网站通行证实现的问题
- myeclipse的插件和配置(望配置过的指教)
- 高分在线等待 精通EJB(第二版) 中文版 下载
- 如何解决这个怪问题啊?这些在JSP页面上显示的时候,可以直接显示中文,但是输出到excel的时候,就直接显示上面这些内容呢?详细见正文
- 100分求解.
- COLDFUSION和FLASH的2本中文书推荐
- 高手指教:程序大赛题FireNet
- 最后的错误了,成功近在尺尺,该怎么办???
- 关于C#控制台清屏的问题
- 如何可以实现动态的数组呢?
- 基础问题:关于事件
评论