• 注册
  • 从V调用C函数

    #flag -lsqlite3
    
    #include "sqlite3.h"
    
    struct C.sqlite3 
    struct C.sqlite3_stmt 
    
    fn C.sqlite3_column_int(C.sqlite_stmt, int) int 
    
    fn main() {
        path := 'sqlite3_users.db' 
        db := &C.sqlite3{} 
        C.sqlite3_open(path.cstr(), &db)
    
        query := 'select count(*) from users' 
        stmt := &C.sqlite3_stmt{} 
        C.sqlite3_prepare_v2(db, query.cstr(), - 1, &stmt, 0)
        C.sqlite3_step(stmt) 
        nr_users := C.sqlite3_column_int(res, 0)
        C.sqlite3_finalize(res)
        println(nr_users) 
    } 
    

    可以使用string(cstring)将C字符串转换为V字符串。

    查看socket.v以获取从V调用C代码的示例:

    https://github.com/vlang/v/blob/master/vlib/net/socket.v

  • 单栏布局 侧栏位置: