C++ DLL导出函数的两种方法(导出序号那种方法,别人看不到函数名)

第一种就直接导出函数名如下代码:

#ifdef__cplusplus

#define TEXPORT extern "c" _declspec(dllexport)

#dlse

#define TEXPORT _declspec(dllexport)

TEXPORT BOOL FUN();//这就是要导出函数

这种方法查看DLL时能看到函数名.

第二种是就导出序号如下代码:

bool _stdcall fun();

在工程右键添加新项目点模块定义文件.DEF,

在在DEF文件里写

LIBRARY "DLL名字"

EXPORTS

fun @1 NONAME

这样导出的函数别人就看不到函数名了.注意序号要顺序写.

调用时要在用的文件里定义#define TEXPORT _declspec(dllimport)   说明函数在DLL里面序号导出的

其它调用都一样了.

http://blog.csdn.net/yjwffgip456/article/details/18702547

时间: 2024-10-23 16:27:44

C++ DLL导出函数的两种方法(导出序号那种方法,别人看不到函数名)的相关文章

JavaScript中的函数的两种定义方式

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /*I总结: 1.函数名可以做变量使用,可以赋值,可以传值 2.函数名当参数,传递给另一个函数 */ //==================js中函

注册JNI函数的两种方式

前言 前面介绍过如何实现在Android Studio中制作我们自己的so库,相信大家看过之后基本清楚如何在Android studio创建JNI函数并最终编译成不同cpu架构的so库,但那篇文章介绍注册JNI函数的方法(静态方法)存在一些弊端,本篇将介绍另外一种方法(动态注册)来克服这些弊端. 注册JNI函数的两种方法 静态方法 这种方法我们比较常见,但比较麻烦,大致流程如下: - 先创建Java类,声明Native方法,编译成.class文件. - 使用Javah命令生成C/C++的头文件,

JavaScript强化教程——DOM编程(两种控制div移动的方法)

本文为H5EDU机构官方HTML5培训教程,主要介绍:JavaScript强化教程--DOM编程(两种控制div移动的方法) 第一种 按钮控制首先 创建两个html按钮和一个div并给div一个样式 input type="button" value="左" id="1"> <input type="button" value="右" id="2"> <div i

jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法

原始form表单值获取方式(手动): $.ajax({ type: "POST", url: "ajax.php", data: "Name=摘取天上星&position=IT技术", success: function(msg){alert(msg);}, error: function(error){alert(error);} }); JQ serialize()方法取值: $.ajax({ type: "POST&quo

Linux下两种删除过期文件的方法详述

一.概述 在实际的C软件开发项目中,不同的软件会在不同的目录中生成文件,由于磁盘的存储空间有限,开发人员不得不考虑对目录下的过期文件进行删除.一般说来,有两种删除过期文件的方法,一种是在C程序中实现,一种是利用crontab实现.本文对这两种方法的具体实现进行详细的介绍. 为了便于说明,本文中的过期文件的后缀为.c,存放在/home/zhou/zhouzx/Test目录下,过期时间为1天. 二.在C程序中实现过期文件删除 在该方法中,我们要考虑的主要问题为: (1)要删除过期多久的文件?文件存放

Button的Click事件与js函数的两种不同顺序触发方式

先执行js,或者先执行Click事件,最近就遇到了这个问题,开始弄了两个按钮分别执行,那才叫一个蛋疼... 1.先执行js,再执行Button的Click函数 <asp:Button ID="btn_delete" runat="server" Text="提交" onclick="button1_Click"/> 前台js为 <script language="javascript"&g

两种 js下载文件的方法(转)

function DownURL(strRemoteURL, strLocalURL){ try{ var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP"); xmlHTTP.open("Get", strRemoteURL, false); xmlHTTP.send(); var adodbStream = new ActiveXObject("ADODB.Stream"); adodbStrea

修饰 C++ 成员函数的两种关键字总结

修饰 C++ 成员函数的两种关键字总结 常量成员函数 (const 关键字) const 修饰成员函数表示这个成员函数不能修改类的成员变量,因此这种成员函数称为常量成员函数.这样,编译器可以对这个函数进行深度的优化.另外,一个类的常量型示例只能调用常量型成员函数.比如下面这个例子. class Test { public: Test(); int getValue() const; int value(); private: int intValue; }; Test::Test(): intV

两种局部刷新UITableView的方法的使用条件

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ //1.取消选中这一行 [tableView deselectRowAtIndexPath:indexPath animated:YES]; //2.获取当前选中的数据 Shop *shop = _shops[indexPath.row]; //3.控制当前cell是否被选中 if( [_deleteShops

strcmp函数的两种实现

strcmp函数的两种实现,gcc测试通过. 一种实现: C代码   #include<stdio.h> int strcmp(const char *str1,const char *str2) { /* 注释以下的五行(while循环)可以简写为: * for(;(*str1==*str2)&&*str1!='\0';str1++,str2++); *  */ while((*str1==*str2)&&*str1!='\0') { str1++; str2