How to access data from array of pointers in LoadLibrary? Only the first is accessible
Show older comments
Hi.
I have in issue with LoadLibrary. I have a function that has the following prototype:
int searchDevice(DeviceData** ptr, unsigned int *size)
{
*size = 2;
(*ptr) = new (std::nothrow) DeviceData[static_cast<int>(*size)]();
for (i=0; i<*size; i++)
{
//update ptr[0 to size-1]
}
return 0; //successful
}
struct tagDeviceData
{
long long int lPortNo;
char strSerialNo[9];
};
When I perform the following in MATLAB:
loadlibrary('MyLib', 'MyLib.h')
pResultArray = libpointer('tagDeviceData');
plSize = 0;
[res, pResult, size] = calllib('MyLib','searchDevice', pResultArray, plSize)
the following is returned:
res = 0
pResult=
MATLAB struct containing:
lPortNo = //value set for index 0
strSerialNo = // value set for index 0
size = 2
I am able to access the first data (since it is the one in the returned struct) but the 2nd data is not accessible. Is there a way to access the data past the first index?
Thank you
Answers (0)
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!