非MFC动态库的创建。。。一个lib.cpp,一个lib.h/*lib.h*/ #ifndef LIB_H #define LIB_H //声明add为dll的导出函数. extern "C" int _declspec(dllexport)add(int x,int y); #...
分类:
编程语言 时间:
2015-05-05 10:27:46
阅读次数:
309
一、引言很多时候,我们写了一个Dll,不希望别人通过DLL查看工具,看到我们的导出函数名称。可以通过以下步骤实现:1. 在def函数中做如下定义:LIBRARYEXPORTSHideFuncName @1 NONAME通过添加NONAME关键字,隐藏函数名,这样的话,用Dependency Walk...
分类:
其他好文 时间:
2015-04-27 00:11:40
阅读次数:
396
随着windows系统从Xp升级到Win7、Win8, 从32位升级到64位,PE文件结构在整体未变的情况下发生了一些小的变动,一方面是推荐的程序装载地址未采用,另一方面,导出函数序号不再是简单的升序,而是一定程度上的进行了乱序。本文首先对PE文件结构进行了详尽的解说,接着介绍了如何得出函数导出表,整个过程采用SysWoW64目录下的wininet.dll实例进行说明。在介绍过程中,明确指出了Win7、Win8等新系统相对Xp带来的区别。...
分类:
其他好文 时间:
2015-03-13 23:49:06
阅读次数:
427
生成dll库
#include
//导出函数,可以加载的时候调用
_declspec(dllexport) void msg()
{
MessageBoxA(0, "1", "2", 0);
}
//导出函数,可以加载的时候调用
_declspec(dllexport) int add(int a, int b)
{
return a + b;
}
调用dll库
#in...
从DEMO程序获知,框架主程序工程文件里Forms替换为uTangramFramework,每个模块都有一个TModule子类和一个GetModuleClass导出函数那么框架是如何进行模块管理的呢?我们先从模块入手unit DllOnePlugin;interfaceuses SysUtils,C...
分类:
其他好文 时间:
2015-01-13 22:51:27
阅读次数:
268
DLL (Dynamic Link Library)动态链接库,是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件,其优点主要有:1. 有助于节省内存;2. 有助于资源共享;3. 不需编译的软件系统升级;4. 支持多语言程序。当然,有的时候我们也可以将一些核心的或者不愿意公开提供的函数编写为DLL,从而起到隐藏和保护的作用。
下面结合实例详细说明在Visual Studio...
分类:
编程语言 时间:
2015-01-07 14:57:15
阅读次数:
205
动态链接库:我们经常把常用的代码制作成一个可执行模块供其他可执行文件调用,这样的模块称为链接库,分为动态链接库和静态链接库。
对于静态链接库,LIB包含具体实现代码且会被包含进EXE中,导致文件过大,浪费磁盘和内存;对于动态链接库,DLL不必被包含在最终的EXE中,EXE执行时可以动态地装载和卸载DLL文件。
导出函数
将函数声明为导出函数有两种方式:
1、 在函数声明上加上_declsp...
分类:
其他好文 时间:
2015-01-05 00:38:06
阅读次数:
228
1. 进入VS开发环境,然后Tools -> Visual studio 2010 Command Prompt2. cd到d:\下3. 输入命令d:\dumpbin /exports a.dll回车即可看到a.dll的所有导出函数如果要重定向输出至b.txt文本文件,则命令格式如下:d:\dump...
分类:
其他好文 时间:
2015-01-02 15:47:42
阅读次数:
146
CLI封装涉及内存对齐的结构体时,使用的是StructLayoutAttribute,指定Pack为1、4、8等属性。
【1】C++导出函数,使用 1位对齐
#pragma pack(push)
#pragma pack(1)
typedef struct _testStru2
{
int iVal;
char cVal;
__int64 llVal;
}testStru2;...
分类:
编程语言 时间:
2015-01-01 17:24:12
阅读次数:
336
CLI封装Union时,没有对应的类型,使用的是结构体struct,指定每个元素的偏移位置。
【1】声明结构体struct时,需要显示指定为Explicit。
【2】每个数据需要使用FieldOffsetAttribute指定偏移位置。
C++导出函数
typedef union _testStru4
{
int iValLower;
int iValUpper;
str...
分类:
编程语言 时间:
2015-01-01 17:23:57
阅读次数:
278