__declspec(dllexport)voidplugin(){ //获取到对应的内存地址 int*p=0x2ff9d8; /"/>

dll

Posted lijianming180

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dll相关的知识,希望对你有一定的参考价值。

visual studio 生成dll

dll是C中的动态库,在程序执行时,被动态加载进来;

  • 对于函数增加前缀:__declspec(dllexport)
  • 更改项目属性,将生成结果该为dll;
  • 点击生成,生成对应的解决方案;
1
2
3
4
5
6
大专栏  dllass="line">__declspec(dllexport) void plugin(){
// 获取到对应的内存地址
int* p = 0x2ff9d8;
// 修改指定内存地址的内容
*p = 999;
}

静态库与动态库

静态库与动态库的区别:

静态库(.a)只能使用在一个exe程序中,打包时,会被打包进行exe程序中;

动态库(.dll)能被多个程序共用,打包时不会被打进exe中,而是单独存在;

以上是关于dll的主要内容,如果未能解决你的问题,请参考以下文章

我可以将 std::string 传递给 DLL 吗?

解决未能加载文件或程序集“Newtonsoft.Json ...."或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)(代码片段

在Visual Studio 2010中将Native / C ++ DLL链接到托管C ++ / CLI包装器

c++中的纯虚函数机制如何从DLL中暴露函数

地址的奇怪错误

谁能告诉我我在片段中犯了错误