The*_*ral 4 c odbc shared-libraries
我移植了ODBC从司机Windows到Linux.
驱动程序是写的C.工作
方式是应用程序调用ODBC管理器(),然后加载相应的驱动程序并传递函数调用. ODBCLinuxODBCM
假设我的驱动程序被编译成一个共享对象,它暴露了两个函数A和B.
应该发生的是ODBCMis调用函数A,函数A是调用函数B.
什么是实际发生的情况是,当函数A调用函数B而不是函数B'(具有相同的名称B,坐落在libodbc共享对象,并通过加载Linux使用ODBC的应用程序)被调用.
我觉得应该有编译时标志或后期编译库修改工具来纠正这个问题.
目前我正在通过库一次执行以下功能:
_B(){ // rename old functions
...
}
B() { // add new wrapper function
return _B(); // which just calls old
}
_A() {
...
_B(); // Change calls to renamed functions
...
}
Run Code Online (Sandbox Code Playgroud)
变化缓慢,感觉很糟糕.