没见过在C语言调用C++的函数、CC++不能调用.docVIP

  • 2
  • 0
  • 约1.41千字
  • 约 2页
  • 2019-07-16 发布于江苏
  • 举报

没见过在C语言调用C++的函数、CC++不能调用.doc

“没见过在C语言中调用C++的函数”、“C/C++不能调用Basic、Pascal语言的函数”   这又是一个奇天下之大怪的问题,“打死我都不相信C、C++、basic、pascal的函数能瞎调来调去”,可是有句话这么说:   没有你见不到的,只有你想不到的!   既然芙蓉姐姐也有其闻名天下的道理,那么C、C++、Basic、Pascal的函数为什么就不能互相调用呢?   能!   你可以用Visual C++写一个DLL在Visual Basic、Delphi(Pascal的孙子,Object Pascal的儿子)中调用,也可以在Visual Basic、Delphi中写一个DLL在Visual C++中调用不是?   让我们来透过现象看本质。首先看看函数的调用约定(以Visual C++来说明):   (1) _stdcall调用   _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。   WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题:   #define WINAPI _stdcall   按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如 _functionname@number。 (2) _cdecl调用   _cdecl是C/

文档评论(0)

1亿VIP精品文档

相关文档