解决方案 »
- 就想问一个问题,有多少人是自学编程的?
- 如何将链表中的数据输入到文件或者列表框中
- soap toolkit3.0如何通过AUTOPROXY
- CListCtl使用Create方法创建,怎样用代码设置它不排序。在线等待,谢谢
- 有没有屏幕拷贝软件和源代码?
- 请问:一个多线程内存访问的问题?
- VC调用oracle存储过程问题,有代码,大家帮我看看,谢谢了
- xsl 中 MSXML 1.0 转成 MSXML 3.0
- 小弟不才,请教网络编程的一个问题!
- 在VC中,如何为动态生成的按钮创建事件?
- vc生成的代码,如果不级联ebp,那么就不能看调用栈?
- VC下MFC多文档做的串口发送程序,如何通过点击菜单发送数据?
extern "C",属于“函数命名修饰”
两者的关系跟大豆油和猪肉类似。
extern "C" 是以C的方式修饰函数名
其他语言只要能调用windowsAPI就也能调用你dll导出的函数。
去掉__stdcall则默认的调用约定是_cdecl,其实_cdecl也能被大多数语言调用,如C# delphi Java 易语言等等。
去掉extern "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对应的汇编并单步执行观察相应内存和寄存器变化。)