int sqlite3_open(const char*, sqlite3**);
在c#中可以这样声明
[DllImport("sqlite3.dll", EntryPoint = "sqlite3_open",CallingConvention=CallingConvention.Cdecl)]
public static extern int sqlite3_open(string filename, out IntPtr db);
在delphi中声明是:
SQLite3_Open: function(dbname: PAnsiChar; var db: pointer): integer; cdecl;
我想知道在java中怎么使用?谢谢了
10 个解决方案
#1
为什么要使用sqlite.dll?
直接使用JDBC就可以访问sqlite数据库
直接使用JDBC就可以访问sqlite数据库
#2
顶
#4
我要使用别人的db,而且别人的db是经过加密的,只能调用它们封装的sqlite3.dll
#5
还有没有知道呀?
#6
友情帮顶,第一次见到sqlite.dll
#7
在c#中可以这样声明
public static extern int sqlite3_open(string filename, out IntPtr db);
可以看出 IntPtr 是一个特殊的 整形数据,所以应对与Java里面的可以用int 来应对,所以后续的工作就好做了。
public interface JnaUseSqlite3Dll extends StdCallLibrary {
//加载动态链接库,把库dll文件默认放到系统C盘window目录下的system32文件夹下
JnaUseSqlite3Dll instance = (JnaUseSqlite3Dll)Native.loadLibrary("sqlite3", JnaUseSqlite3Dll.class);
//对应动态链接库中的方法, 要注意的是 这里的方法必须要和链接库(dll文件)对应的方法名一致
public int sqlite3_open(String filename, int db);//db
}
====================================
/**
* 工具类
* @author Administrator
*
*/
public class Sqlite3Util {
/**
* 得到一个jna实例,调用dll动态链接库,
* @return
*/
public static JnaUseSqlite3Dll getInstance() {
return JnaUseSqlite3Dll.instance;
}
/**
*
*
*/
public static int sqlite3_open(String filename) {
int returnNum = getInstance().sqlite3_open(filename, 0);
return returnNum;
}
public static void main(String[] args) {
String filename="xxxxx";
Sqlite3Util.sqlite3_open(filename);
}
}
楼主可以试试,看看这个是否对你有所帮助
public static extern int sqlite3_open(string filename, out IntPtr db);
可以看出 IntPtr 是一个特殊的 整形数据,所以应对与Java里面的可以用int 来应对,所以后续的工作就好做了。
public interface JnaUseSqlite3Dll extends StdCallLibrary {
//加载动态链接库,把库dll文件默认放到系统C盘window目录下的system32文件夹下
JnaUseSqlite3Dll instance = (JnaUseSqlite3Dll)Native.loadLibrary("sqlite3", JnaUseSqlite3Dll.class);
//对应动态链接库中的方法, 要注意的是 这里的方法必须要和链接库(dll文件)对应的方法名一致
public int sqlite3_open(String filename, int db);//db
}
====================================
/**
* 工具类
* @author Administrator
*
*/
public class Sqlite3Util {
/**
* 得到一个jna实例,调用dll动态链接库,
* @return
*/
public static JnaUseSqlite3Dll getInstance() {
return JnaUseSqlite3Dll.instance;
}
/**
*
*
*/
public static int sqlite3_open(String filename) {
int returnNum = getInstance().sqlite3_open(filename, 0);
return returnNum;
}
public static void main(String[] args) {
String filename="xxxxx";
Sqlite3Util.sqlite3_open(filename);
}
}
楼主可以试试,看看这个是否对你有所帮助
#8
好久的老帖子了,请问楼主解决了嘛?
告诉一下解决方式啊
告诉一下解决方式啊
#1
为什么要使用sqlite.dll?
直接使用JDBC就可以访问sqlite数据库
直接使用JDBC就可以访问sqlite数据库
#2
顶
#3
正面寻求的话,不妨看看这个:
http://tvjody.iteye.com/blog/125643
http://tvjody.iteye.com/blog/125643
#4
我要使用别人的db,而且别人的db是经过加密的,只能调用它们封装的sqlite3.dll
#5
还有没有知道呀?
#6
友情帮顶,第一次见到sqlite.dll
#7
在c#中可以这样声明
public static extern int sqlite3_open(string filename, out IntPtr db);
可以看出 IntPtr 是一个特殊的 整形数据,所以应对与Java里面的可以用int 来应对,所以后续的工作就好做了。
public interface JnaUseSqlite3Dll extends StdCallLibrary {
//加载动态链接库,把库dll文件默认放到系统C盘window目录下的system32文件夹下
JnaUseSqlite3Dll instance = (JnaUseSqlite3Dll)Native.loadLibrary("sqlite3", JnaUseSqlite3Dll.class);
//对应动态链接库中的方法, 要注意的是 这里的方法必须要和链接库(dll文件)对应的方法名一致
public int sqlite3_open(String filename, int db);//db
}
====================================
/**
* 工具类
* @author Administrator
*
*/
public class Sqlite3Util {
/**
* 得到一个jna实例,调用dll动态链接库,
* @return
*/
public static JnaUseSqlite3Dll getInstance() {
return JnaUseSqlite3Dll.instance;
}
/**
*
*
*/
public static int sqlite3_open(String filename) {
int returnNum = getInstance().sqlite3_open(filename, 0);
return returnNum;
}
public static void main(String[] args) {
String filename="xxxxx";
Sqlite3Util.sqlite3_open(filename);
}
}
楼主可以试试,看看这个是否对你有所帮助
public static extern int sqlite3_open(string filename, out IntPtr db);
可以看出 IntPtr 是一个特殊的 整形数据,所以应对与Java里面的可以用int 来应对,所以后续的工作就好做了。
public interface JnaUseSqlite3Dll extends StdCallLibrary {
//加载动态链接库,把库dll文件默认放到系统C盘window目录下的system32文件夹下
JnaUseSqlite3Dll instance = (JnaUseSqlite3Dll)Native.loadLibrary("sqlite3", JnaUseSqlite3Dll.class);
//对应动态链接库中的方法, 要注意的是 这里的方法必须要和链接库(dll文件)对应的方法名一致
public int sqlite3_open(String filename, int db);//db
}
====================================
/**
* 工具类
* @author Administrator
*
*/
public class Sqlite3Util {
/**
* 得到一个jna实例,调用dll动态链接库,
* @return
*/
public static JnaUseSqlite3Dll getInstance() {
return JnaUseSqlite3Dll.instance;
}
/**
*
*
*/
public static int sqlite3_open(String filename) {
int returnNum = getInstance().sqlite3_open(filename, 0);
return returnNum;
}
public static void main(String[] args) {
String filename="xxxxx";
Sqlite3Util.sqlite3_open(filename);
}
}
楼主可以试试,看看这个是否对你有所帮助
#8
好久的老帖子了,请问楼主解决了嘛?
告诉一下解决方式啊
告诉一下解决方式啊