2
我有一个奇怪的问题。当我使用共享库的参数调用导入的方法时,在这些方法中我有错误的参数。它是这样的:与dlsym导入的函数中的参数错误位置
x = 1; y = 2; z = 3;
(*method)(x,y,z);
在方法,我有:
void method(int x, int y, int z){
// x = 2, y = 3, z = 32432423 - something like this
}
这里我怎么做进口:
QVector<int> (*interpolateValue)(int*, int, int, int);
QVector<int> ys = (*interpolateValue)(NULL, lastY, newY, step);
:
QVector<int> (*interpolateValue)(int, int, int);
libHandle = dlopen("plugins/libinterpolate.so", RTLD_LAZY);
*(void **)(&interpolateValue) = dlsym(libHandle, "_ZN11Interpolate16interpolateValueEiii");
QVector<int> ys = (*interpolateValue)(lastY, newY, step);
我周围这样的方式进行工作,这个
但我认为这不是一种手段。
现在很清楚。谢谢! –