最近有个需求,要生成一个dll 文件,文件中的函数都是采用 stdcall 函数调用约定,但是不希望函数名被修饰(add 被修饰成 add@8)。这时就要用def 文件了。 比如我有下面两个函数: [cpp] view plain copy extern "C" int _stdcall add(i ...
分类:
其他好文 时间:
2017-11-03 12:57:11
阅读次数:
129
1,现象: 自定义C/C++ dll,编译无错误,另一程序使用动态调用方法,加载dll正常,但是调用函数时使用各种方法无法成功。 使用dll查看工具,发现函数名为func和乱码的组合,如下图: 2, 原因查找: 各方查找原因,发现原因并不是有的帖子说的要在编译dll的头文件中加入 extern "C ...
分类:
编程语言 时间:
2017-10-16 16:32:33
阅读次数:
478
unsigned __stdcall fangdiaoshiThread(void * lParam) { while (true) { DWORD dwTime = GetTickCount(); Sleep(1000); if ((GetTickCount() - dwTime) > 2000)... ...
分类:
其他好文 时间:
2017-10-12 01:03:37
阅读次数:
156
x86平台下调用约定 我们都知道x86平台下常用的有三种调用约定,__cdecl、__stdcall、__fastcall。我们分别对这三种调用约定进行分析。 __cdecl __cdecl是C/C++的默认调用约定,如果不显示声明调用约定的情况下,就是该调用约定。下面我们来从汇编层次来熟悉这种调用 ...
分类:
其他好文 时间:
2017-09-25 11:48:25
阅读次数:
207
参考网站如下: ?http://blog.csdn.net/yusongwhu/article/details/7577461 http://www.cnblogs.com/lhbssc/archive/2012/02/08/2342853.html 具体内容如下: (1)篇? 今天在研究怎么在vc ...
分类:
编程语言 时间:
2017-09-11 21:24:33
阅读次数:
184
__stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。 ...
分类:
编程语言 时间:
2017-09-11 21:06:11
阅读次数:
132
OpenSCManager:function OpenSCManager(lpMachineName, lpDatabaseName: PChar;dwDesiredAccess: DWORD): SC_HANDLE; stdcall; OpenSCManager,函数建立了一个到服务控制管理器的连 ...
分类:
其他好文 时间:
2017-09-11 19:34:08
阅读次数:
134
c中的printf中的参数就是典型的可变参数,参数不固定,那怎么获取呢 正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈 结果为 a address is 3e20571cb address is 3e205718b values is 2a va ...
分类:
其他好文 时间:
2017-09-08 10:00:24
阅读次数:
210
1.函数调用约定 函数的调用约定,顾名思义就是对函数调用的一个约束和规定(规范),描述了函数参数是怎么传递和由谁清除堆栈的。它决定以下内容: (1) 函数参数的压栈顺序; (2) 由调用者还是被调用者把参数弹出栈; (3) 产生函数修饰名的方法; 在看C++ primer中就提到函数声明包括:返回值 ...
分类:
其他好文 时间:
2017-09-01 13:40:33
阅读次数:
288
今天编写使用C语言调用mysql数据库编程实战以及技巧。为其它IT同行作为參考,当然有错误能够留言,共同学习。 一、mysql数据库的C语言经常使用接口API 1.首先当然是链接数据库mysql_real_connect,原型例如以下: MYSQL * STDCALL mysql_real_conn ...
分类:
数据库 时间:
2017-08-13 12:30:19
阅读次数:
226