星期一, 四月 28, 2014

自定制rust 库的使用方法。

设计三个文件,分别是mod test1,test2,test3,
这三个文件将编译成一个库,提供给其他crate使用。
test1.rs
#![crate_type = "lib"]
mod test2;
mod test3;
pub fn name1() {println!("this is test1 name");::test2::name2();}

test2.rs
 mod  test3;
pub fn name2() {println!("this is test2 name");::test3::name3();}

test3.rs:
pub fn name3() {println!("this is test3 name");}

rustc test1.rs 生成库文件:libtest1-bbdcc1d8-0.0.rlib

然后编写一个使用该库的crate,t1.rs
t1.rs
extern crate test1;
use test1::name1;
fn main()
{
 ::test1::name1();
}
得到正确的结果:

星期四, 四月 10, 2014

Mdtool 出现Add-in scan operation failed

运行mdtool出现错误:
Add-in scan operation failed.
ERROR: The add-in database could not be updated. It may be due to file corruption. Try running the setup repair utility

这个是由于安装Unity在网络盘造成的问题,
.net 4.0之后,需要在mdtool.exe.config加入:
<runtime>
....
      <loadFromRemoteSources enabled="true"/>
</runtime>


星期二, 四月 08, 2014

Window Remote Desktop Custome Width and Heigth?

Window 远程桌面设定指定的宽和高.
通过选项里拖拉到最大全屏只能是让远程桌面最大和本地桌面一样大。

如果远程桌面的尺寸比较大,可以通过命令行启动参数来制定远程窗口最大的
宽和高:
mstsc /h:1080 /w:1920

星期五, 四月 04, 2014

C如何得到当前时间时间戳用微秒

最简单代码。

#include <sys/time.h>
#include <inttypes.h>
uint64_t getCurrentTimestamp()
{
struct timeval tv;
gettimeofday(&tv,NULL);

printf("%d raw microseconds:\n",tv.tv_usec);
 uint64_t time_in_micros =( (uint64_t)1000 * (tv.tv_sec) )+ tv.tv_usec/1000;
printf("%" PRIu64 "  real microseconds:\n",time_in_micros);
return time_in_micros;
}