PE
+ -

vs2019编写dll并导出函数

2023-07-14 173 0

下面是一个使用Visual Studio 2019的示例,演示如何通过.def文件修改DLL导出函数名称:

  1. 在Visual Studio 2019中创建一个新的Win32 DLL项目。选择“DLL”项目类型,并在“导出符号”选项中选择“Yes”。

  2. 在项目中创建一个源文件(例如,YourSourceCode.cpp),并在其中定义你的导出函数。例如:

    __declspec(dllexport) int AddNumbers(int a, int b)
    {
        return a + b;
    }
    
  3. 在项目文件夹中创建一个.def文件(例如,YourDefFile.def),用于指定你的导出函数及其新名称。例如:

    LIBRARY YourDll
    EXPORTS
        NewAddNumbers = AddNumbers
    

    在上面的示例中,我们将AddNumbers函数的新名称指定为NewAddNumbers

  4. 在Visual Studio中打开项目,右键单击项目名称,选择“属性”。

  5. 在属性对话框中,导航到“配置属性” > “链接器” > “输入”。
  6. 在“导入库”字段中,添加你的.def文件的路径和文件名,例如 $(ProjectDir)YourDefFile.def
  7. 保存并关闭属性对话框。

现在,当你构建项目时,Visual Studio将使用.def文件来指定DLL导出函数的新名称。

请注意,如果你在使用Visual Studio创建Win32 DLL项目时选择了选项“No”(即不生成.def文件),你可以手动创建.def文件并按照上述步骤进行操作。

完成上述步骤后,你将获得一个具有修改后导出函数名称的DLL文件。

0 篇笔记 写笔记

ApiSetSchema.dll的apiset节
api-ms系列动态库函数其实还在在另外一种映射,即api-ms部分dll不存在系统中函数映射分发。也就是说某个exe文件依赖于某个api-ms的dll,但这个dll并不存在系统中,但实际上这个exe文件运行时并不报错。这是为什么呢?api-ms- 系列的 DLL 确实起的是转发作用,但其本身可以......
WDDM 模型架构
WDDM驱动模型架构从Windows Vista开始支持,由内核模块和应用模块组成。微软图形显示子系统架构如下所示:根据上图可知,我们开发WDDM驱动并不是从头开始全部,而是配合Windows已经提供的现有的显示驱动架构的基础上开发内核态的显示MiniPort驱动、用户模式的显示驱动和用于支持O......
远程的DLL注入进程的实现
进程注入的原理就是让目标进程执行一段自己的代码,而这个实现的前提是1.让目标进程可以访问我们自己写的代码2.让目标进程跳到我们的代码入口执行3.执行完成后可以正常退出,不引发进程的crash。这里采用的是DLL远程注入方式.大概原理是基本上所有的进程都会依赖kernel32.dll,而这个DLL......
ASIO asiosample.dll注册及注册表信息变化
在Windows下注册ASIO一节中,是需要对COM进入注册的。故我们使用Regsvr32命令注册。如:K:usbzhasioasiosdk_2.3.3_2019-06-14driverasiosampleasiosampleDebug>REGSVR32 asiosample.......
ASIO 示例代码调试准备
ASIO提供的示例代码在进行调试前,需要做以下几个步骤:第一,就是按上节的要求将编译好的asiosample.dll通过命令行进行注册,这里使用的命令是REGSVR32 asiosample.dll当然,这个注册分为32位和DLL和64位的DLL,所以会有差别。本人在现有的机器使用的是32位编程......
COM组件注册信息
根据COM规范,客户程序通过COM库完成COM对象的创建,COM库则通过注册表所提供的信息进行组件的创建。注册表中包含了所有COM组件的必要信息。组件程序和客户程序都可访问注册表。组件程序把它所实现的COM对象的信息及接口信息保存到注册表中,称之为组件的注册。COM组件在HKEY_CLASSES_......
COM 类厂和DllGetObjectClass函数
类厂是COM对象的生产基地,COM库通过类厂创建COM对象;对应每一个COM类,都有一个类厂,用于该COM类的对象创建操作。类厂本身也是一个COM对象,它支持一个特殊接口(IClassFactory):class IClassFactory:public IUnknown{ virtua......
COM组件的安装与卸载
(1)进程内组件的安装客户调用COM库的CoCreateInstance或CoGetClassObject创建COM对象时,在CoGetClassObject中,COM库根据注册表中的信息,找到类标识符CLSID对应的组件程序(DLL)的全路径并调用CoLoadLibrary,再调用组件程序的Dll......
APO动态库DLL文件的路径问题
APO DLL注册路径APO的DLL文件是通过regsvr32注册表的。比如:regsvr32.exe xxAPO.dll这样在注册表HKEY_LOCAL_MACHINESOFTWAREClassesCLSID就会记录该文件的GUID的路径。该GUIDPKEY_FX_*EffectCls......
vs2019编写dll并导出函数
下面是一个使用Visual Studio 2019的示例,演示如何通过.def文件修改DLL导出函数名称:在Visual Studio 2019中创建一个新的Win32 DLL项目。选择“DLL”项目类型,并在“导出符号”选项中选择“Yes”。在项目中创建一个源文件(例如,YourSource......
CreateRemoteThread远程汪入DLL
被注入的DLLBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ......
音频会话audioses.dll
audioses.dll提供了wasapi对用户层的基本导出接口。可以使用process explorer这个工具抓到取来看到,风是电脑中使用了音频的相关软件,都会加载audioses.dllaudioses.dll导出的是COM相关的接口:不过通过IDA分析,其内部的类主要有:CAudioC......
音频端点生成器 AudioEndpointBuilder.dll
在Windows Vista和更高版本的Windows中,AudioEndpointBuilder是一种系统服务,用于枚举、初始化和激活系统中的音频端点。AudioEndpointBuilder以服务的形式,其使用算法来发现和枚举音频设备端点设备,这些音频设备端点在WindowsVista及以后的......
OBS扩展模块DLL-模块路径及配置文件路径
扩展模块即OBS需要加载的外部dll。这些dll一般位于C:Program Filesobs-studioobs-plugins64bit目录下。模块路径外部模块的路径添加通过函数obs_add_module_path实现。void obs_add_module_path(const......
OBS扩展模块DLL-加载模块
设置了一系列的模块的路径之后,需要在这些路径下搜索模块dll,并将其加载到内存中。模块的加载入口位于:OBSBasic::OBSInit(),其函数调用关系如下:OBSBasic::OBSInit()obs_load_all_modules2(&mfi); //加载模块,失败信息存储在......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!