目录1.DLL中导出函数的方式有两种2.查看dll导出函数;3.__declspec(dllexport)和.def文件的区别。1.DLL中导出函数的方式有两种:方式一:在每一个函数声明前添加标识符: __declspec(dllexport)比如:__declspec(dllexport) int...
分类:
其他好文 时间:
2014-10-27 17:14:12
阅读次数:
202
项目中需要用到ORTP,我采用的编译环境是 VC2013,当我在项目设置中将设置为静态库是,发现没有导出函数,比如在需要连接 oRTP.lib库时提示 找不到 ORTP_init;解决办法是 :在ORTP库的项目中和需要连接ORTP库的项目中 添加预处理器定义 ORTP_STATIC ,就可以了 程...
分类:
其他好文 时间:
2014-10-15 17:49:51
阅读次数:
157
在window下查看动态库的导出函数可以用vs自带的Dependenc工具; 查看静态库的信息要用命令行来实现: dumpbin /LINKERMEMBER Test.lib > lib.txt 上面的功能是将静态库的信息导出保存在lib.txt文件中,这样就可以在lib.txt文件中查看相关的信息...
sub.c#include#include"sub.h"int WINAPI DllMain(_In_ HANDLE _HDllHandle, _In_ DWORD _Reason, _In_opt_ LPVOID _Reserved) { return TRUE; } EXPO...
分类:
其他好文 时间:
2014-10-06 00:06:59
阅读次数:
319
曾经,调试时跟进HeapAlloc,结果发现直接进入到ntdll的RtlAllocateHeap中,感到很有趣,就使用Dependency Walker查看kernel32.dll的导出函数,结果发现HeapAlloc的地址直接显示的就是NTDLL.RtlAllocateHeap。于是反汇编查看ke...
分类:
其他好文 时间:
2014-09-28 14:41:12
阅读次数:
862
当然以前我知道有一个.def文件的,里面写的都是需要导出的函数,以为与__declspec(dllexport)作用是一样的。但是今天看公司项目源码的时候才知道,它们两个导出方法是有一定的区别的,编译导出来的符号名称是略有不同的,如果供其他语言调用dephin,等,就麻烦些。references:h...
分类:
其他好文 时间:
2014-09-18 18:14:04
阅读次数:
159
这是《Lua程序设计》中提到的,但是想成功执行,对于初学Lua的确没那么简单。这里涉及如何如何生成一个动态链接库so文件;Lua5.2中导出函数从LuaL_register变成了LuaL_newlib。对于具体的细节有待深入。这里的模块名是hello_lib,
Lua解释器会根据名字找到对应的模块,而后执行其中的 luaopen_XXX方法。
代码:
#include
#include ...
分类:
其他好文 时间:
2014-09-01 15:37:33
阅读次数:
253
关于Dll
Dll,Exe 都是PE格式的二进制文件。Dll相当于Linux操作系统下的so文件
1 基地址(Base Address)和相对地址(RelativeVirtual Address)
基地址(BaseAddress)和相对地址(Relative Virtual Address)是PE文件的概念,当PE文件被装载的时候,进程空间的起始地址就是基地址,这个值是PE...
分类:
其他好文 时间:
2014-09-01 00:29:22
阅读次数:
295
1. DEF文件1 EXPORTS2 3 g_nTest DATA ;导出全局变量4 5 GetGlobalVar ;导出函数2. 调用1 extern int g_nTest; //声明2 3 int main(int argc, char *argv[])4 {5 ...
分类:
其他好文 时间:
2014-08-31 14:24:41
阅读次数:
208
(转)关于C/C++函数调用约定,大多数时候并不会影响程序逻辑,但遇到跨语言编程时,了解一下还是有好处的。VC中默认调用是__cdecl方式,Windows API使用__stdcall调用方式,在DLL导出函数中,为了跟Windows API保持一致,建议使用__stdcall方式。调用约定跟堆栈...
分类:
其他好文 时间:
2014-08-23 20:15:01
阅读次数:
228