我写了一个动态连接库,想通过回调来扩展功能,刚开始准备用回调函数,后来采用的类来实现。
我首先定义一个抽象的类,里面有很多虚拟的方法(这些方法提供给dll用),在具体使用时,
从此类派生,再把派生类的object传进去;
问题是采用这样的方法后,在我自己的机器上编译能通过,但是执行的时候,有时候就可以运行,
有的时候就报错,报错的地点就是在dll调用对象的方法时出错;现在我把它换到另外一台机器上
时,运行时参数传递都不正确,例如:dll调用object的方法时,传进去一个结构体的引用,此
结构体中有个字符数组(20个),在函数中我往字符数组中拷9个字符,跟踪dll从此函数返回后的
字符数组的值,9个字符变成了5个;以上dll与调用dll的程序编译的参数大都相同,包括函数的调用约定,即_cdecl,还有字节对齐方式