A库调用B库funcD函数,却触发了B库funcB函数的断点
简述
A库是个DLL,B库是个libA库里面某个类继承了接口类
|
1 2 3 4 5 6 7 |
class IInterface { public: virtual void func1() = 0; virtual void func2() = 0; virtual void func3() = 0; virtual void func6() = 0; } |
|
1 2 3 4 5 6 7 8 9 |
class CTestA : public IInterface { public: virtual void func1() {} virtual void func2() {} virtual void func3() {} virtual void func4() {} virtual void func5() {} virtual void func6() {} }; |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class CMgr : { public: void init() { // construct interface CTestB } void test() { // ... if (interface) { // 调用了func6 interface->func6(); } } private: IInterface* interface; }; |
B类里面继承了接口类
|
1 2 3 4 5 6 7 8 9 |
class IInterface { public: virtual void func1() = 0; virtual void func2() = 0; virtual void func3() = 0; virtual void func4() = 0; virtual void func5() = 0; virtual void func6() = 0; } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class CTestB : public IInterface { public: virtual void func1() {} virtual void func2() {} virtual void func3() { // func3的断点却触发了 // func3传进来的参数是0x000001 // func3内的代码使用该参数的地方发生奔溃 } virtual void func4() {} virtual void func5() {} virtual void func6() {} } |
原因
A库项目使用了B库生成的lib静态库A库的IInterface.h少了几个函数,和B库的IInterface.h内容不一样- 最后同步了一下接口文件的内容解决问题
声明:本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Windows高级调试_调试器03/19
- ♥ WinDbg相关01/12
- ♥ Windows 核心编程 _ 内核对象:线程同步一07/29
- ♥ Soui一03/17
- ♥ Windows 核心编程 _ 进程一06/07
- ♥ Windows 核心编程 _ 线程内幕07/06