当前位置:编程学习 > VB >>

求指点啊

我编写的a.dll如下:double __stdcall Max(double *a,int b)
{
int i;
double Amax;
Amax = *(a+0);
for(i=0;i<=b;i++)
{
if (*(a+i)>Amax)
Amax = *(a+i);
}
return Amax;
}

入口函数是Max.现在想在vb中动态加载,请问该如何写,跪求指点。
 Dim a(1 To 10) As Double
 Dim i As Integer
  Print "产生的随机数为:"
  '产生10个的随机整数
    For i = 1 To 10
        a(i) = CDbl(Rnd * 10)
       Print a(i);
    Next i                      求出这个数组中的最大值。一定是动态加载这个dll,谁会得请指教啊。     --------------------编程问答-------------------- http://blog.csdn.net/a294447011294447011/article/details/2984786

看一下  --------------------编程问答--------------------

Private Declare Function Max Lib "a.dll" Alias "MaxA" (ByRef a() As Double, ByVal L As Integer) As Double

Private Sub Form_Load()
    Dim a(1 To 10) As Double
    Dim i As Integer
    Dim MaxNum As Double
    For i = 1 To 10
        a(i) = CDbl(Rnd * 10)
    Next i
    MaxNum = Max(a, 10)
End Sub

--------------------编程问答-------------------- CallByName函数是一个灵活性很强的函数,通过它可以实现通过字符串调用方法以及回调的功能

这是个vb6中的例子,


Option Explicit


Private Sub Command1_Click()

'设置属性

CallByName Text1, "Text", VbLet, "New Text"  '通过callbyname给窗体中的文本框赋值

'读属性

MsgBox CallByName(Text1, "Text", VbGet)      '通过callbyname取窗体中的文本框的值

'move方法

CallByName Text1, "Move", VbMethod, 100, 100, 2000, 500  '通过callbyname调用窗体中的文本框的move函数将文本框移动

 

End Sub


--------------------编程问答-------------------- 楼主 要动态添加的 --------------------编程问答-------------------- 2楼正解 --------------------编程问答-------------------- 你们那不是动态加载,你们那是调用动态链接库,动态加载时程序运行后,我可以随便选择加载哪个dll,而不用在程序中声明 --------------------编程问答-------------------- 这里有一个类,根据DLL名、API名调用API函数,前提必须是标准的DLL:
http://topic.csdn.net/u/20110329/10/78f7baa9-d526-4a6f-8e23-6141d9bb76d3.html --------------------编程问答--------------------
Private Function Minimum(ParamArray Vals())
Dim n As Integer, MinVal
On Error Resume Next
    MinVal = Vals(0)
    For n = 1 To UBound(Vals)
        If Vals(n) < MinVal Then MinVal = Vals(n)
    Next n
    Minimum = MinVal
End Function
Private Function Maximum(ParamArray Vals())
Dim n As Integer, MaxVal
On Error Resume Next
    MaxVal = Vals(0)
    For n = 1 To UBound(Vals)
        If Vals(n) > MaxVal Then MaxVal = Vals(n)
    Next n
    Maximum = MaxVal
End Function
debug.print Maximum(1,2,3)
debug.print Minimum(-1,-2.2,3)
补充:VB ,  API
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,