rs文件编译
A. 紧急求助:如何从.o文件中反编译出.c的文件
有类似软件,原来用过一个叫SR还是RS(reverse
source)的忘记了,不过变量名等全变成了代码,因为一般的编译都未将符号表包括进去,所以反编译出的东西都很难看明白,和想象的差很远。
B. Eclipse中如何将从数据库中查询到的结果集rs保存到文件中
java">importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
/**
*java读取数据库内容并存放到文件中
*id作为文件名,相同的id只能创建一个文件
*有重复文件名就向文件中续写,id不存在就新建
*
*写入文件换行用fw.write(" ");
*或者fw.write(" ");
*@authoryoung
*
*/
publicclassJavaToSQLTest{
publicstaticvoidmain(String[]args)throwsFileNotFoundException{
PrintWriterpw=null;
FileWriterfw=null;
//定义数据库驱动
Stringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库连接URL
Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=soft";
Connectionconn=null;
Stringid;
Stringfname,lname;
try{
//pw.println("emp_id fname lname");
//pw.println("------ ------ ------");
//加载数据库驱动
Class.forName(driver);
//创建数据库连接
conn=DriverManager.getConnection(url,"sa","1234");
//创建预编译SQL对象
PreparedStatementps=conn
.prepareStatement("selectemp_id,fname,lnamefromemps");
//执行SQL,获取结果集rs
ResultSetrs=ps.executeQuery();
//处理结果集
while(rs.next()){
id=rs.getString("emp_id");
fname=rs.getString("fname");
lname=rs.getString("lname");
Stringfilename=id+".txt";
//关联文件
Filefile=newFile(filename);
if(!file.exists()){
//判断文件不存在就new新文件,写数据
try{
file.createNewFile();
//javaIO流和文件关联
pw=newPrintWriter(file);
pw.print(id+" ");
pw.print(fname+" ");
pw.print(lname);
pw.println();
pw.flush();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}else{
//判断文件存在,就以FileWriter文件追加的方式写文件
try{
fw=newFileWriter(filename,true);
fw.write(id+" ");
fw.write(fname+" ");
fw.write(lname);
fw.flush();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
System.out.println("加载数据库失败");
System.exit(1);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
System.out.println("数据库连接错误");
System.exit(1);
}finally{
if(conn!=null){
try{
//关闭数据库连接
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
if(pw!=null){
//关闭IO流
pw.close();
}
if(fw!=null){
try{
fw.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
}
C. rust里面可以使用windows系统函数吗
时下如果语言界要评选一个网红的话,无疑会是Rust。Rust凭借着自己出色的安全性和高效性被各大平台所接纳,Linux内核,安卓底层开发,Windows底层开发相继都采纳并给出了对应的借口。微软的Windows也是,最近发布了Rust for Windows(windows-rs) v 0.9。更新中包括全面的调用支持,Rust可以直接原生调用任何Windows API可以极大的拓展Rust在Windows下的开发能力和范围。本文我们通过实例来学习Rust for Windows 。
概述
本次更新提供了很多新的特性和更新,根据官方的信息包括:
添加了对Win32和COM API的支持,统一了Windows板条箱。这些Windows API有新的项目win32metadata来添加。为了方便和统一,项目名称由“Rust/WinRT”更改为“Rust for Windows”。
添加了几个示例 ,演示了如何调用各种Windows API(包括Win32,COM和WinRT API)。
Windows 板条箱在crates.io发布,现在支持MIT或Apache双开源版权。
内置生成的binding,无需再手动编写。
Windows支持在Linux上构建。
Win32 API的许多改进和修复,例如对数组类型,各种字符串类型和更新的元数据的支持。
添加了对COM接口的更自然和惯用的支持,例如返回值,以及对涉及C样式联合和嵌套类型之类的其他API的支持。
缩短了构建时间并改善了错误处理。
保留原始的API大小写,这会影响使用Windows crate的现有代码。通过类似于QueryInterface的函数转换为通用函数,从而可以更安全,更方便地调用许多与COM相关的函数。
环境配置
Window板条箱使用需要首先要在Windows下配置Rust开发环境,还在Rust环境的安装也非常简单傻瓜化。
安装rustup
首先从Rust官方(rust-lang.org)下载安装包rustup-init.exe(记得下载当前Windows对应的32位或者64位版本)。
然后直接执行安装包,安装程序为自动配置好系统路径,以后就可以直接在命令行下使用了,比如cargo包管理器。
安装C++ build tools
Windows下的rust编译还依赖Microsoft C++ build tools工具,不安装,后面在编译时,会报错说“link.exe”无法找到。
需要从微软VS下载出下载vs_buildtools,选中C++工具和Windows SDK组件并安装。
安装VS Code及其Rust插件
另外,为了方便一般建议安装VS Code及其Rust插件:
crates-io国内源
配置Rust 板条箱的国内源,由于官方crates-io国内下载太慢,甚至容易失败,所以先配置国内源(比如ustc)
在用户目录C:\Users\CC\.cargo创建一个config文件,内容配置为:
示例
首先,通过cargo创建一个新的Rust项目:
cargo new hello-chongchong
以上命令这将创建一个新目录并hello-chongchong创建基本项目框架目录和文件。
进入该目录,并使用--lib 命令嵌套创建依赖的库项目:
cargo new --lib bindings
然后通过
code .
在VS Code打开该项目,截图如下:
修改项目Cargo.toml文件中,添加以下依赖项,依赖项告诉Cargo现在它依赖于新创建的win库。
[dependencies]
bindings = {path = " bindings"}
现在,在win文件夹下的Cargo.toml文件中,添加对Windows板条箱的依赖项,版本指定为最新的0.9.1。这样就可以通过允许Cargo打包下载,构建和缓存Windows支持。
[dependencies]
windows = "0.9.1"
[build-dependencies]
windows = "0.9.1"
然后在bindings目录下创建一个新的源文件build.rs,并输入一下源码:
// build.rs
fn main() {
windows::build!(
Windows::Win32::WindowsAndMessaging::MessageBoxA
);
}
在代码中,使用 windows::build 宏指定要使用的类型,可以再次列出需要使用的所API,Windows板条箱将直接元数据生成必要的绑定。
然后修改win/src目录中为以下代码:
windows::include_bindings!();
这样,就可以在主项目main.rs文件中,任意调用指定的Windows API。此处我们创建一个“Hello Chongchong!”消息对话框。
use bindings::Windows::Win32::WindowsAndMessaging::{MessageBoxA, MESSAGEBOX_STYLE};
fn main() {
unsafe {
MessageBoxA(None, "Hello Chongchong!", "Message", MESSAGEBOX_STYLE::MB_OK);
}
}
注意,任何Win32函数和COM接口方法,都需要用unsafe方式调用。
然后通过cargo build编译该项目,并通过cargo run 会弹出一下对话框。
新版本的板条箱中再带了几个例子,可以在windows-rs项目仓库的examples目录。
总结
Rust for Windows 给rust在Windows开发应用带来了福音,虽然一些API可能早就被广泛地使用了,但是现在有了官方的支持,可以在文档、示例和稳定性等各方面都有极大的改善。
D. 如何更改安卓安装包的内置文件
工具:安卓修改大师、一个你要修改的app安装包(这里以贪吃蛇大作战为例)。
1、选取一个要进行反编译的游戏或应用:点击安卓修改大师顶部的安卓游戏选项卡,打开的页面中找到任何一款想修改的游戏,例如,本示例将要修改的游戏为“贪吃蛇大作战”。
更改安卓安装包的内置文件需要反编译已经打包的APK安装包,此方法推荐使用“安卓修改大师”,可以在没有源代码的情况下,直接反编译安装包,通过修改代码实现添加和去除部分功能,也可以修改应用图标和应用程序名称。
E. 急急急!编译出错啦!
request.getParameter("username")返回值仔渗应该是Object类型,trim函数是String类的一个方纯神法,所以该语句应该写成
((String)request.getParameter("username")).trim();或者
request.getParameter("username").toString().trim();
出错页面往往有两个Exception Stack,你把两个都详细点念裤脊贴上来看看吧