Matlab全局变量在DLL函数中表现得非常奇怪。
我们有一个DLL函数。例如:
extern "C" MATLABLIB_API dllexample(*double x, *double globalmat);
通过正常的例程调用DLL:
calllib('MATLABLIB', 'dllexample', x, LibPointerforGlobalMat)
其中globalmat是指向存储在名为globalmat的matlab工作空间中的全局矩阵的指针。它的数据将由DLL中创建的不同线程更新,然后用于DLL中的进一步计算。
然而,返回的结果非常奇怪;看起来DLL函数根本没有更新globalmat。
但是当被任何C ++程序调用时,DLL工作得非常好。我只是想知道为什么?