MSVC在编译C/C++程序的时候,默认采用__cdecl调用约定来编译。__stdcall是Win32 API函数的默认调用规约。Calling ConventionInternal*MSVC DLL (w/ DEF)MSVC DLL (dllexport)DMC DLLMinGW DLLBCC ...
分类:
其他好文 时间:
2015-03-21 15:31:45
阅读次数:
142
最近有个需求,要生成一个dll 文件,文件中的函数都是采用 stdcall 函数调用约定,但是不希望函数名被修饰(add 被修饰成 add@8)。这时就要用def 文件了。
比如我有下面两个函数:
extern "C" int _stdcall add(int a, int b)
{
return a + b;
}
extern "C" int _stdcall sub(int ...
分类:
其他好文 时间:
2015-03-20 11:01:27
阅读次数:
105
我曾经写过一个小短文,介绍MinGW gcc 生成动态链接库 dll 的一些问题。当时写的并不全面。最近又遇到写新的问题。这里记录一下,做个补充。
通常情况下,dll 中的函数如果采用 _stdcall ,则生成的dll中函数名会被修饰。
比如有如下的函数:
//dll.c
int _stdcall add(int a, int b)
{
return a + b;
...
分类:
其他好文 时间:
2015-03-16 23:11:53
阅读次数:
369
在公司用的联想 ThinkPad T430i,原装配置及系统,开机巨慢。按下开机键到登陆界面超过1分钟,再到桌面这个时间就难说了,多时有超过3分钟,进入桌面还要等待几分钟才能正常操作。新年过来向公司领导申请换固态硬盘,得到领导同意马上换了三星 120G的SSD,重装系统。 做为软件开发工程师,...
分类:
Windows程序 时间:
2015-03-12 19:06:24
阅读次数:
1335
Go语言中的sync.Once,用于实现"只执行一次"的功能。功能与pthread_once()差不多。
但pthread_once()可不通用,不过现在C++11终于有了std::call_once来实现这一功能。
虽然一个面向协程,一个面向线程,但这个点要实现的功能是一样的,把两种语言的实现记录一下。...
分类:
编程语言 时间:
2015-02-16 16:58:14
阅读次数:
166
函数调用约定
常见的函数调用约定[5]:cdecl,stdcall,fastcall,thiscall,naked call
MFC调用约定(VS6:Project Settings->C/C++ Calling convention:)
1, __cdecl(C调用约定.The C default calling convention)C/C++ 缺省调用方式
...
分类:
编程语言 时间:
2015-02-09 12:56:00
阅读次数:
275
***********************************************************
首先,比较C++ 中的三种函数调用方式。
测试代码:
int _stdcall Add1(int x1, int x2, int x3)
{
return x1 + x2 + x3;
}
int __cdecl Add2(int x1, int x2...
分类:
编程语言 时间:
2015-02-09 12:54:41
阅读次数:
304
__stdcall 被这个关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall 的前面部分由ecx,edx传),函数调用在返回前要由被调用者清理堆栈。这个关键字主要见于Microsoft Visual C、C++。GNU的C、C++是另外一种修饰方式:__attribute_.....
分类:
其他好文 时间:
2015-01-26 14:55:48
阅读次数:
127
//MyInt.pasunit MyInt;interface{$IFNDEF MYLIB}function MyAdd(a,b:integer):integer ;stdcall;{$ENDIF}implementation{$IFNDEF MYLIB}function MyAdd; extern...
好久没用BCB了,真的有些陌生了,当然个烂笔头吧。1 先 implib c:\xxx.lib c:\xxx.dll 生成lib文件2 #pragma comment(lib,"xxx.lib")3 extern "C" __declspec(dllimport) __stdcall int AFun...
分类:
编程语言 时间:
2015-01-03 07:02:04
阅读次数:
189