崩溃弹出的截图如下看到0xC0000005, 访问冲突的问题, 九成九是内存访问违规, 比如访问了已经释放的指针, 又或者是离开函数时栈被破坏之类.找了一下午一直没有头绪, 好在有一份可以执行的源代码, 于是就将那份可执行的源代码改啊改, 改成和我的代码差不多的样子, 终于发现了问题 (我想, 这也...
分类:
其他好文 时间:
2014-07-02 23:29:03
阅读次数:
324
驱动代码内部相关关键字等如KillTimer、 LPVOID —指针、BOOL和bool、NEW分配内存
、HWND、UNIT、、__cdecl 、_stdcall、PASCAL 、_fastcall、_thiscall的区别与联系、
typedef LONG_PTR LPARAM;typedef UINT_PTR WPARAM;等...
分类:
其他好文 时间:
2014-06-22 21:18:54
阅读次数:
244
_cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的 顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只有用相同的方法才能够调用成功.另外, 像printf这样接受可变个数参数的函数只有用cde...
分类:
其他好文 时间:
2014-06-20 13:55:03
阅读次数:
237
有不懂的C语言声明请猛击http://cdecl.org
分类:
Web程序 时间:
2014-06-18 21:39:43
阅读次数:
152
一、sbrk函数来源:TC2.0、Linux函数名:sbrk功 能:
增加程序可用数据段空间,增加大小由参数 incr决定 。返回值:函数调用成功返回一指针,指向新的内存空间。函数调用失败则返回
-1,将errno设为ENOMEM。函数原型: void * _Cdecl sbrk(int incr....
分类:
其他好文 时间:
2014-06-04 17:54:34
阅读次数:
355
在windows上,常用的函数调用方式有:Pascal方式,WINAPI(_stdcall)方式
和C方式(_cdecl)_cdecl调用规则:1,参数从右到左入堆栈2,在函数返回后,调用者要负责清除堆栈所以这种调用常会生成较大的可执行文件。_stdcall又称为WINAPI调用方式,规则:1,参数...
分类:
其他好文 时间:
2014-06-02 06:44:44
阅读次数:
446
昨天编译一个小程序的时候,报了个错,或者说2个
1>uafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 LIBCMT.lib(dllmain.obj) 中定义
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@...
分类:
其他好文 时间:
2014-05-26 03:18:48
阅读次数:
200
调用约定(Calling
convention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。最常用的两种 Calling
convention:① _cdecl 按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于“C”函数或者变量,修饰名是在.....
分类:
其他好文 时间:
2014-05-17 19:14:22
阅读次数:
247
在VS 2008 中,导入 lua.h 之类的头文件后,编译含有Lua函数的时候,可能会出现如下错误:
1>main.obj : error LNK2019: 无法解析的外部符号_luaL_checkinteger,该符号在函数"int __cdecl add(struct lua_State *)" (?add@@YAHPAUlua_State@@@Z) 中被引用
1>main.ob...
分类:
其他好文 时间:
2014-05-04 18:34:20
阅读次数:
376
先看下windows下的使用:
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);这里就有一个CALLBACK,转到定义看一下
#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
#define CALLBACK __stdcall
#define WINAPI...