如何在VB中使用導(dǎo)入API

字號(hào):

在 Visual Basic 中使用導(dǎo)入 API會(huì)發(fā)現(xiàn)很難找到正確的 dll。我知道 C++ 中有一個(gè) dll,但是,有沒有可以從 VB 應(yīng)用程序調(diào)用的 dll 呢?
    回答是肯定的:
    有兩種方法可以完成這項(xiàng)工作。一種方法就是在 VB 的 DECLARE 部分列出您希望調(diào)用的 C API,然后利用標(biāo)準(zhǔn)
    的調(diào)用序列從 VB 調(diào)用它,如下面的代碼樣本所示:
    Type SQLCA_STRUCT
    sqlcaid As String * 8
    sqlcabc As Long
    sqlcode As Long
    sqlerrml As Integer
    sqlerrmc As String * 70
    sqlerrp As String * 8
    sqlerrd(6) As Long
    sqlwarn As String * 11
    sqlstate As String * 5
    End Type
    Public Declare Function sqlepstart Lib "db2app" Alias "sqlepstart_api"
    (ByVal junk&, ByRef sqlca As SQLCA_STRUCT) As Integer
    '
    DB2_start = sqlepstart(0, sqlca) ' Start DB2 call
    另一種方法就是生成一個(gè)文件,然后發(fā)出一條命令在后臺(tái)執(zhí)行該函數(shù)(當(dāng)然,取決于您正在試圖做什么):
    fileno = FreeFile
    Open db2file For Output As #fileno
    sqlstmt = "" + _
    "db2start;" + vbNewLine + _
    "quit;"
    Print #fileno, sqlstmt ' Write commands to a file
    Close #fileno ' Close it and execute the command
    db2cmd = "db2cmd /i /c db2 -tvf " + db2file ' Generate the command
    progID = Shell(db2cmd, vbMinimizedNoFocus) ' Shell out to run it
    最后,DB2 的下一個(gè)版本將允許您象運(yùn)行普通的 SQL 表函數(shù)那樣運(yùn)行特殊的 API 命令。這會(huì)返回有關(guān)目前可在 DB2 中找到的許多管理 API 的結(jié)果。因此,無需進(jìn)行 API 調(diào)用,您只需使用 SQL 調(diào)用就可從 DB2 獲取信。