摘要: 1、 DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。 静态链接库与动态链接库的区别: (1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。 (2)静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。 动态链接库的分类:Visual C++支持三种DLL,它们分别是: (1)Non-MFC D 阅读全文
posted @ 2011-07-22 14:59 忧郁的加菲猫 阅读(11959) 评论(1) 推荐(5) 编辑
摘要: 通过GetProcAddress函数动态调用dll中的函数,是否必须通过extern "C"声明导出函数? [已结贴,结贴人:darongtou]如题,网上搜了N多资料,一直找不到确定的答案,目前我的答案是“是”。晚上因为一个程序,好好研究了一下。很多资料上都只是说明“如果没有 extern "C" 修饰,输出函数仅仅能从 C++ 代码中调用。”却并没有明确这个调用是通过显式调用还是隐式调用,我也一直没有看到过有代码是通过显示调用没有 extern "C" 修饰的导出函数。MSDN上也只是说The spelling and case 阅读全文
posted @ 2011-07-22 09:49 忧郁的加菲猫 阅读(6947) 评论(0) 推荐(0) 编辑
摘要: 第一章的sample1,文中提到由于windows底层代码基本上是用c语言编写的,因此新工程里的CPP文件要改为C文件。 但是在编译时出现错误fatal error C1853: "debug/1_1.pch" is not a precomplied header file with this complier...... 这个问题还真是头一次遇到,怎么办?百度一下,解决办法如下: 错误原因: 该错误是因为当项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。 在 VC++ 中,默 阅读全文
posted @ 2011-07-22 09:37 忧郁的加菲猫 阅读(1956) 评论(0) 推荐(0) 编辑