如题。
例如:Public num() as Integer
例如:Public num() as Integer
解决方案 »
- excel VBA 怎么用代码 指定下拉框的选中项
- VB掉用C++写的DLL出现的问题,大家讨论讨论
- 象MAXTHON这种浏览器的页面连接"超级拖拽"功能,VB可以做吗
- vb中怎么传递二维数组
- 有哪位大侠能给出一个简短而全的一个用VB操纵EXcel打印的过程(立结)
- ◥◣㊣◢◤ 再见了VB版的朋友们 ◥◣㊣◢◤
- 谁要《软件设计文档国家标准》《VB6.0数据库开发学习教程》?
- 如何设置通用对话框“打开”可以多选文件???
- 请问,如何在同一窗体的不同控件之间拖拽?谢谢
- 怎么关联磁盘列表控件 目录列表控件 和文件列表控件啊?
- listbox的问题!!!请指教!
- 如果取得已编译程序的LABEL内容????
问题如下:在vb中调用VC编写的DLL(其中包含一采用冒泡排序BubbleSort实现的排序过程)。
在VB中通过ByRef传递数组名ArrayName,ByVal传递数组元素个数ArraySize。DLL编译通过,
我将其拷到VB程序所在文件夹下,程序编译通过,但调用排序过程后,数组中的元素并未进
行排序???
DLL采用stdcall调用约定,且在定义文件.def中也已列出BubbleSort过程名.//DLL中的排序函数BubbleSort(已在VC环境下测试完全正确.)
Sort_API BubbleSort(int *ArrayName,int ArraySize)
{
int i,j,temp; AFX_MANAGE_STATE(AfxGetStaticModuleState());
for(i=0;i<ArraySize-1;i++)
for(j=i+1;j<=ArraySize-1;j++)
if( *(ArrayName+i) > *(ArrayName+j) )
{
temp=*(ArrayName+i);
*(ArrayName+i)=*(ArrayName+j);
*(ArrayName+j)=temp;
}
}
//VB中DLL声明:Public Declare Sub BubbleSort Lib "D:\Program Files\VB98\自编程序\VbCallDll\Sort" (ByRef ArrayName() As Integer, ByVal ArraySize As Integer)//VB中调用代码
Dim ArrayName(0 To 9) As Integer
Dim i, ArraySize As Integer
ArraySize = 10
'测试值
ArrayName(0) = 19
ArrayName(1) = 50
ArrayName(2) = 3
ArrayName(3) = 18
ArrayName(4) = 6
ArrayName(5) = 94
ArrayName(6) = 24
ArrayName(7) = 32
ArrayName(8) = 47
ArrayName(9) = 58
Call BubbleSort(ArrayName(), ArraySize)
For i = 0 To 9
Print ArrayName(i)
Next i 程序运行后,输出结果和上面赋值的情形一样。修改DLL进行测试时发现ArraySize值传递正确,
问题似乎出现在数组的传递上。
请赐教,谢谢!