vb调用c++生成的dll里的函数的简单问题~
不知道分类改算vb还是c++。。vbbyref传递给dll一个自定义类型(type),dll里的函数计算出一个数组然后返回一个int指针。我想知道vb这边得到这个int指...
不知道分类改算vb还是c++。。
vb byref传递给dll一个自定义类型(type), dll里的函数计算出一个数组然后返回一个int指针。
我想知道vb这边得到这个int 指针之后如何取得数组里所有元素的值?
或者有什么更好的办法??
另外,如果dll的函数需要计算很久, 怎么才能让vb这边的窗体不发生假死??
vb版本 vb6
c++版本 vs2012 展开
vb byref传递给dll一个自定义类型(type), dll里的函数计算出一个数组然后返回一个int指针。
我想知道vb这边得到这个int 指针之后如何取得数组里所有元素的值?
或者有什么更好的办法??
另外,如果dll的函数需要计算很久, 怎么才能让vb这边的窗体不发生假死??
vb版本 vb6
c++版本 vs2012 展开
1个回答
展开全部
我觉得你不应该返回int指针,你应该在你的vb中定义整型数组,然后用byref 的形式传递指针给函数,让函数把结果存放在vb的数组里再裂哗操作。
假死是你的dll函数耗时造成的,不是vb造成的,简单点的话你可以让你的函漏源纯数用api让光标返咐等待,计算完了再恢复光标,这样用户就知道怎么回事了。
或者你用多线程来调用,不过比较复杂,可以寻找相关资料。
假死是你的dll函数耗时造成的,不是vb造成的,简单点的话你可以让你的函漏源纯数用api让光标返咐等待,计算完了再恢复光标,这样用户就知道怎么回事了。
或者你用多线程来调用,不过比较复杂,可以寻找相关资料。
追问
比如vb里写dim arr(3) as long然后byref传给dll的函数(void foo(int* arr))那么能否直接用c++赋值(arr[1] = 1;)?听说vb里数组不是连续的内存啊
其实我已经想到一种不得已的办法——vb告诉dll i,dll返回数组第i项。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询