解决方案 »

  1.   

    通用的是  extern "C"  __stdcall
      

  2.   

    大豆油和猪肉两种材料炒出来的菜有什么区别?_stdcall,cdecl,...属于“函数调用约定”
    extern "C",属于“函数命名修饰”
    两者的关系跟大豆油和猪肉类似。
      

  3.   

    _stdcall是调用约定,决定参数入栈方式,谁负责清理
    extern "C" 是以C的方式修饰函数名
      

  4.   

    windowsAPI就是以extern "C"  __stdcall导出的,只要你的dll函数以extern "C"  __stdcall导出,
    其他语言只要能调用windowsAPI就也能调用你dll导出的函数。
    去掉__stdcall则默认的调用约定是_cdecl,其实_cdecl也能被大多数语言调用,如C# delphi Java 易语言等等。
    去掉extern "C" 基本就只能让C++调用了,C语言都无法调用。
      

  5.   

    计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……对学习编程者的忠告:
    多用小脑和手,少用大脑、眼睛和嘴,会更快地学会编程!
    眼过千遍不如手过一遍!
    书看千行不如手敲一行!
    手敲千行不如单步一行!
    单步源代码千行不如单步Debug版对应汇编一行!
    单步Debug版对应汇编千行不如单步Release版对应汇编一行!VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
    对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
    (Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)