Results 1 to 40 of 73

Thread: how to Fast Call cdecl api like sqlite3.dll?

Threaded View

  1. #1

    Thread Starter
    PowerPoster
    Join Date
    Jan 2020
    Posts
    5,538

    how to Fast Call cdecl api like sqlite3.dll?

    With m_cCDECL
    sqlite3_exec = .CallFunc("sqlite3_exec", sqlite3, VarPtr(bvData(0)), 0, 0, 0)
    End With

    I WANT TO DO LIKE THIS:
    address1=GetProADDRESS (dll,"sqlite3_exec")

    bind_dllto_address(address1,addressof Mysqlite3_exec)

    function Mysqlite3_exec(ByVal sqlite3 As Long, ByVal zSql As long)
    'ASMCODE:
    'CALL address1(sqlite3 ,zSql )
    'clear something?
    end function


    this code maybe to slowly!
    Code:
    Public Function sqlite3_exec(ByVal sqlite3 As Long, ByVal zSql As String) As Long
        'int sqlite3_exec(
        '  sqlite3*,                                  /* An open database */
        '  const char *sql,                           /* SQL to be evaluated */
        '  int (*callback)(void*,int,char**,char**),  /* Callback function */
        '  void *,                                    /* 1st argument to callback */
        '  char **errmsg                              /* Error msg written here */
        ');
           
        Dim bvData()    As Byte
        Dim lSize       As Long
        Dim lRet        As Long
        
        If LenB(zSql) Then
            lSize = Len(zSql) * 4
            ReDim bvData(lSize)
        
            lRet = WideCharToMultiByte(CP_UTF8, 0, StrPtr(zSql), Len(zSql), bvData(0), lSize + 1, vbNullString, 0)
        
            If lRet Then
                ReDim Preserve bvData(lRet - 1)
            End If
        End If
    
        If m_bLoaded Then
            With m_cCDECL
                sqlite3_exec = .CallFunc("sqlite3_exec", sqlite3, VarPtr(bvData(0)), 0, 0, 0)
            End With
        Else
            sqlite3_exec = SQLITE_ERROR
        End If
    End Function
    Last edited by xiaoyao; Dec 5th, 2020 at 08:00 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width