化石原创文章,转载请注明来源并保留原文链接


一阵没弄c++,遇上一个小工具,必须使用c++写,刚写完编译出现连接错误:

error LNK2001:xxx __calloc_dbg

其实还有__free_dbg等字眼。

c++这个东西,的确会比其他语言烦一点。但是熟悉也就好解决。这个问题的原因是代码生成部分没有用到带d(debug)的选项引起的。

VC工程上,右键 | 属性 | 配置属性 | C/C++ | 代码生成 | 运行库,选择自己的项目合适的带d的即可。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


网络不通畅的时候,使用git克隆,会经常出现cur 18错误。解决的方式简单有使用git 参数的–depth,但是这个方式并不是一定能解决这个问题。稳妥的方式还是使用ssh方式克隆。

ssh方式,必须在服务器上的仓库上传public key。这个key可以用很多工具生成,但是安装git的机器上,现成的还是git bash自带的。

1、右键git bash here

2、敲入

ssh-keygen -t rsa -C "your_email@example.com"

3、根据提示输入相关的信息。只想用默认的就直接敲回车。

4、全部好了后,命令行会提示public key(.pub)和认证文件(.rsa)的存放地址。Window10放在了/Users/Administrator/.ssh/下面。

这样生成相关文件的步骤完成。

5、把pub文件或者其中的内容在git服务器上配置到相应的仓库。

6、通过git客户端克隆ssh(git开头的url)的连接即可。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


虚幻4.23版本的源码编译,需要用到.net 4.2.6,在生成sln文件的步骤,

虚幻提供的bat文件报错,找不到.net 4.6.2。估计是当初忘记勾选相关的组件了,通过菜单打开installer,居然发现找不到4.6.2的组件,有4.6.1,4.7,就是没有4.6.2。

解决方式是直接到微软官网下载.net 4.6.2 SDK,安装即可。安装后vs installer的组件列表里还是没有。但已经不影响虚幻的编译。

我这个vs 2017是15.7版本,不知道是不是这个原因。后续又发现虚幻4.23编译也需要升级vs这个版本,说在此版本上不能编译。所以估计该版本还是有点问题的。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


因为做一个东西,发现Unity3d播放4k视屏cpu占用比较高,于是尝试用libvlc库。制作过程中发现循环播放这个功能网上很多误导的资料,所以把这个记录下来。

不多说,直接上代码。

#include <Windows.h>
#include "vlc/vlc.h"

int main(int argc, char* argv[])
 {
     libvlc_instance_t * inst;
     libvlc_media_player_t *mp;
     libvlc_media_list_t* ml;
     libvlc_media_t* md;
     libvlc_media_list_player_t* mlp;
     
     inst = libvlc_new (0, NULL);
     ml = libvlc_media_list_new(inst);
     md = libvlc_media_new_path(inst, "ParticleWave4K.mp4");
     libvlc_media_list_add_media(ml, md);
     libvlc_media_release(md);
     mlp = libvlc_media_list_player_new(inst);
     mp = libvlc_media_player_new(inst);
     libvlc_set_fullscreen(mp, true);
     libvlc_media_list_player_set_media_list(mlp, ml);
     libvlc_media_list_player_set_media_player(mlp, mp);
     libvlc_media_list_player_set_playback_mode(mlp, libvlc_playback_mode_loop);
     libvlc_media_list_player_play(mlp);

     HANDLE event = CreateEvent(NULL, true, false, "event");
     WaitForSingleObject(event, INFINITE);

     libvlc_media_player_stop (mp);
     libvlc_media_list_player_stop(mlp);
     libvlc_media_player_release (mp);
     libvlc_media_list_release(ml);
     libvlc_release (inst);
 
     return 0;
 }


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


像web一样,可以使用css文件,也可以写在代码(online)里。比如,我们给ListView做自定义的style:

第一种方式:

(a) 写一个css文件,名字叫做stylesheet.css

(b) 里面加入以下内容

.mylist {
    -fx-control-inner-background: #494c4e;
}

(c) 代码初始化加载该css文件

scene.getStylesheets().add("stylesheet.css");

(d) 在listview的实例中使用

listView.getStyleClass().add("mylist");

这样我们的listview中的每个cell的背景就成了我们自己的颜色。

第二种方式:

直接使用方法,举例

listView.setStyle("-fx-control-inner-background: #494c4e;");

这个效果跟第一种是一样的。第一种适合大项目管理,做皮肤等;第二种方式快速,立竿见影,一般是调试、小工具等使用。


化石原创文章,转载请注明来源并保留原文链接