动态链接库dll的 静态加载 与 动态加载
静态链接就是把所有用到的函数全部链接到exe文件中。
生成 静态链接库
lib 和动态链接库 dll
newdll) win32项目 -> dll
添加.h文件
betabinlib.h
#ifndef BETABINLIB_H
#define BETABINLIB_H #ifdef NEWDLL_EXPORTS //自动添加的宏 右键工程-属性-配置属性-预处理器-..定义
#define MYDLL_API extern "C" __declspec(dllexport)
#else
#define MYDLL_API extern "C" __declspec(dllimport)
#endif MYDLL_API int add(int x, int y); // 必须加前缀
#endif
添加.cpp文件 betabinlib.cpp
#include "stdafx.h"
#include "betabinlib.h" int add(int x, int y)
{
return x + y;
}
LIB等)
lib 和 .dll两个文件 (.
lib 做 引导用),.h文件
main.cpp
#include <stdio.h>
#include "betabinlib.h"
#include <Windows.h>
#pragma comment(lib, "newdll.lib") int main()
{
printf("2 + 3 = %d \n", add(2, 3));
return 0;
}
#include <stdio.h>
#include <Windows.h> int main()
{
HINSTANCE h=LoadLibraryA("newdll.dll");
typedef int (* FunPtr)(int a,int b);//定义函数指针 if(h == NULL)
{
FreeLibrary(h);
printf("load lib error\n");
}
else
{
FunPtr funPtr = (FunPtr)GetProcAddress(h,"add");
if(funPtr != NULL)
{
int result = funPtr(3, 3);
printf("3 + 3 = %d \n", result);
}
else
{
printf("get process error\n");
printf("%d",GetLastError());
}
FreeLibrary(h);
} return 0;
}
动态链接库dll的 静态加载 与 动态加载的更多相关文章
- 动态库DLL加载方式-静态加载和动态加载
静态加载: 如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头文件中 #pragma comment(lib ...
- JAVA反射机制--静态加载与动态加载
Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如pu ...
- [转载] 动态链接库dll的 静态加载 与 动态加载
转载自:http://blog.csdn.net/youxin2012/article/details/11538491 dll 两种链接方式 : 动态链接和静态链接(链接亦称加载) 动态链接是 ...
- 建立WIN32 DLL,并使用静态加载和动态加载
新建工程,选择win32 dll 编写.cpp(或.c) MyDll.cpp #include "windows.h" BOOL APIENTRY DllMain(HANDLE h ...
- JAVA类的静态加载和动态加载以及NoClassDefFoundError和ClassNotFoundException
我们都知道Java初始化一个类的时候可以用new 操作符来初始化, 也可通过Class.forName()的方式来得到一个Class类型的实例,然后通过这个Class类型的实例的newInstance ...
- C#.Net 如何动态加载与卸载程序集(.dll或者.exe)1----C#中动态加载和卸载DLL
我们知道在C++中加载和卸载DLL是一件很容易的事,LoadLibrary和FreeLibrary让你能够轻易的在程序中加载DLL,然后在任何地方卸载. 在C#中我们也能使用Assembly.Load ...
- 动态链接库dll,静态链接库lib, 导入库lib
转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html 目前以lib后缀的库有两种,一种为静态链接库(Static Libar ...
- 使用js加载器动态加载外部Javascript文件
原文:http://www.cnblogs.com/xdp-gacl/p/3927417.html 今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js var ...
- Lodop 动态加载模板,动态加载数据
最近需要使用Lodop打印控件,所以就研究了一下,期间从网上找了诸多的东西,基本全是对HTML进行打印的,没有找到我想要的,就只好自己动手丰衣足食. 这篇文章主要讲述的是Lodop与数据的结合使用,官 ...
随机推荐
- ThinkPHP 常用配置项列表
//数据库配置 DB_HOST 主机名 DB_USER 用户名 DB_PWD 密码 DB_NAME 数据库名 DB_PREFIX 表前缀 LOAD_EXT_FILE=>'function lis ...
- ASP.NET PipeLine #Reprinted#
从ASP.NET 1.0 起,相比于ASP中的COM, PipeLine 就是一项重大的改进. ASP.NET 时代的管道模型究竟是怎么样的? 我们能接触到的四个最重要的概念就是HttpApplica ...
- 第三章 视图和URL配置
在Mysite文件夹中,创建一个views.py的空文件,输入: from django.http import HttpResponse def hello(request): return Htt ...
- 【转】论文、会议、期刊评价|Indicate paper, conference, Journal
转自“浙江大学计算机学院软硬件协同设计实验室”:http://multicore.zju.edu.cn/fatlab/Indicate-paper.htm 1 体系结构领域,排名为 ...
- 蝕刻技術(Etching Technology)
1. 前言 蚀刻是将材料使用化学反应或物理撞击作用而移除的技术. 蚀刻技术可以分为『湿蚀刻』(wet etching)及『干蚀刻』(dry etching)两类.在湿蚀刻中是使用化学溶液,经由化学反应 ...
- Eddy's爱好(dfs+容斥)
Eddy's爱好 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- AFNetworking 3.0x版本最新特性
AFNetworking是一款在OS X和iOS下都令人喜爱的网络库.为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持. ...
- levelDB跳表实现
跳表的原理就是利用随机性建立索引,加速搜索,并且简化代码实现难度.具体的跳表原理不再赘述,主要是看了levelDB有一些实现细节的东西,凸显自己写的实现不足之处. 去除冗余的key template& ...
- ViewPager实现启动引导页面(个人认为很详细)
效果如图: 启动页面是一张图片+延时效果,这里就不给出布局文件了. WelcomeActivity分析:在启动页面检测是否是第一次运行程序,如果是,则先跳转到引导界面的Activity——AndyVi ...
- Win7 x64安装Paramiko出问题
今天上午windows下配置paramiko环境时出现问题,随手记录下来. 先说一下我的环境: win7 x64 旗舰版.Python3.5.0.pip8.1.0 pip install para ...