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);
我周圍這樣的方式進行工作,這個
但我認爲這不是一種手段。
現在很清楚。謝謝! –