<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ffmemcpy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ffmemcpy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ffmemcpy]]></copyright><item><title><![CDATA[git fatal: Authentication failed for]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/125149831</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/125149831</guid><author>ffmemcpy</author><pubDate>Mon, 06 Jun 2022 16:48:20 +0800</pubDate><description><![CDATA[git fatal: Authentication failed for]]></description><category></category></item><item><title><![CDATA[git保存用户名和密码，不用每次输入账号]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/124942227</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/124942227</guid><author>ffmemcpy</author><pubDate>Tue, 24 May 2022 10:30:58 +0800</pubDate><description><![CDATA[实验环境：window10，安装git，tortoiseGit



打开.gitconfig

在[credential]下增加一项：

helper = store


]]></description><category></category></item><item><title><![CDATA[ATL服务程序编写]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/121029365</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/121029365</guid><author>ffmemcpy</author><pubDate>Fri, 29 Oct 2021 10:38:13 +0800</pubDate><description><![CDATA[打开VS2013，文件---&gt;新建---&gt;项目，选择ATL名称自己随便取，确定

下一步

完成



移除ServiceDemoPS项目

核心代码

  HRESULT InitializeSecurity() throw()
  {
   // TODO : 调用 CoInitializeSecurity 并为服务提供适当的安全设置
   // 建议 - PKT 级别的身份验证、
   // RPC_C_IM...]]></description><category></category></item><item><title><![CDATA[Android Studio打包apk]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/119954895</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/119954895</guid><author>ffmemcpy</author><pubDate>Fri, 27 Aug 2021 16:00:40 +0800</pubDate><description><![CDATA[打开Android的工程项目，选择Build



弹出对话框选择apk



Next



Key store path就是Key文件的路径，如果有Key文件就不用创建，没有就指定一个文件路径，点击Create new...就可以，剩下的随便填，Next



选择一个生成版本，Finish

就会在工程目录下生成对应的apk文件




...]]></description><category></category></item><item><title><![CDATA[使用Ubuntu安装软件出现Unable to locate package错误解决办法]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/115409909</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/115409909</guid><author>ffmemcpy</author><pubDate>Fri, 02 Apr 2021 23:58:41 +0800</pubDate><description><![CDATA[apt-get update

apt-get upgrade
]]></description><category></category></item><item><title><![CDATA[CollaboraOnline在Ubuntu20.04下编译运行]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/114985266</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/114985266</guid><author>ffmemcpy</author><pubDate>Thu, 18 Mar 2021 17:20:24 +0800</pubDate><description><![CDATA[1.安装Ubuntu 20.04 LTS server 64位的测试机，安装时要确保镜像地址可访问，我这里填的是：http://mirrors.aliyun.com/ubuntu/

2.sudo apt install -y dialog

3.sudo apt install -y libpoco-dev python3-polib libcap-dev npm \
          libpam-dev wget git build-essential libtool \
 ...]]></description><category></category></item><item><title><![CDATA[go指针]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107856487</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107856487</guid><author>ffmemcpy</author><pubDate>Fri, 07 Aug 2020 10:18:37 +0800</pubDate><description><![CDATA[go指针跟c语言里的指针类似
go函数可以返回局部变量的地址。
func fun() *int{
 m := 1
 return &amp;m
}

var p = fun()
fmt.Println(fun() == p)  //false


var n = flag.Bool("n", false,"newline")
var sep = flag.String("s", " ", "separator")

func main(){
 flag.Parse()
 ...]]></description><category></category></item><item><title><![CDATA[go语言名称、声明]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107843321</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107843321</guid><author>ffmemcpy</author><pubDate>Thu, 06 Aug 2020 17:40:13 +0800</pubDate><description><![CDATA[名称：
简单的命名规则：名称的开头是一个字母（Unicode中的字符即可）或下划线，后面可以跟任意数量的字符、数字和下划线，并区分大小写。

预留的关键字：
break default func interface select case defer go map
struct chan else goto package switch const fallthrough if
range type ...]]></description><category></category></item><item><title><![CDATA[最大公约数]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107788198</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107788198</guid><author>ffmemcpy</author><pubDate>Tue, 04 Aug 2020 15:41:46 +0800</pubDate><description><![CDATA[辗转相除求最大公约数法：

int gcd(int a, int b) {
 int r;
 while (b &gt; 0) {
  r = a % b;
  a = b;
  b = r;
 }
 return a;
}
]]></description><category></category></item><item><title><![CDATA[ShellExecuteEx启动进程失败]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107657682</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107657682</guid><author>ffmemcpy</author><pubDate>Wed, 29 Jul 2020 10:42:12 +0800</pubDate><description><![CDATA[ShellExecuteEx启动一个进程，有时候会失败

SHELLEXECUTEINFO中lpFile，lpDirectory参数带空格时候，需要在参数前后加上双引号
]]></description><category></category></item><item><title><![CDATA[stl map常用函数]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107344520</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107344520</guid><author>ffmemcpy</author><pubDate>Tue, 14 Jul 2020 18:22:00 +0800</pubDate><description><![CDATA[//构造函数
 //map()
 map&lt;char, int&gt; m1;

 //指定一个比较函数来创建map对象
 struct KeyCompare
 {
  bool operator()(const char* s1, const char* s2) const
  {
   return strcmp(s1, s2) &lt; 0;
  }
 };
 map&lt;const char...]]></description><category></category></item><item><title><![CDATA[stl multiset常用函数]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107343314</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107343314</guid><author>ffmemcpy</author><pubDate>Tue, 14 Jul 2020 17:39:48 +0800</pubDate><description><![CDATA[//构造函数
 //multiset()
 multiset&lt;int&gt; ms1;

 //指定一个比较函数来创建multiset对象
 struct KeyCompare
 {
  bool operator()(const char* s1, const char* s2) const
  {
   return strcmp(s1, s2) &lt; 0;
  }
 };
 multise...]]></description><category></category></item><item><title><![CDATA[stl set常用函数]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107341199</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107341199</guid><author>ffmemcpy</author><pubDate>Tue, 14 Jul 2020 16:33:16 +0800</pubDate><description><![CDATA[//构造函数
 //set()
 set&lt;int&gt; s1;

 //指定一个比较函数来创建set对象
 struct KeyCompare
 {
  bool operator()(const char* s1, const char* s2) const
  {
   return strcmp(s1, s2) &lt; 0;
  }
 };
 set&lt;const char*, Key...]]></description><category></category></item><item><title><![CDATA[stl list常用函数]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107339067</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107339067</guid><author>ffmemcpy</author><pubDate>Tue, 14 Jul 2020 15:24:48 +0800</pubDate><description><![CDATA[//构造函数
 //list()
 list&lt;int&gt; l1;

 //explicit list(size_type _Count)
 list&lt;int&gt; l2(10);

 //list(size_type _Count, const _Ty&amp; _Val)
 list&lt;int&gt; l3(3, 11);

 //list(const _Myt&amp; _Right)
 list&lt;int&gt; l4(...]]></description><category></category></item><item><title><![CDATA[stl deque常用函数]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107338058</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107338058</guid><author>ffmemcpy</author><pubDate>Tue, 14 Jul 2020 14:49:20 +0800</pubDate><description><![CDATA[//构造函数
 //deque()
 deque&lt;int&gt; d1;

 //explicit deque(const _Alloc&amp; _Al)
 deque&lt;int&gt; d2;

 //deque(size_type _Count, const value_type&amp; _Val)
 deque&lt;int&gt; d3(3, 3);

 //deque(const _Myt&amp; _Right)
 deque...]]></description><category></category></item><item><title><![CDATA[stl vector常用函数]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107316912</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107316912</guid><author>ffmemcpy</author><pubDate>Mon, 13 Jul 2020 14:49:29 +0800</pubDate><description><![CDATA[//构造函数
 //explicit vector(const _Alloc&amp; _Al)
 vector&lt;int&gt; v1;

 //explicit vector(size_type _Count)
 vector&lt;double&gt; v2(12);

 //vector(size_type _Count, const value_type&amp; _Val)
 vector&lt;double&gt; v3(10, 1.3);

...]]></description><category></category></item><item><title><![CDATA[sqlite3_exec返回SQLITE_MISUSE（21）]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107258742</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107258742</guid><author>ffmemcpy</author><pubDate>Fri, 10 Jul 2020 18:00:09 +0800</pubDate><description><![CDATA[sqlite3版本3.29.0

sqlite3打开数据的路径中有中文时，sqlite3_exec会返回这个错误，将中文转utf8就好了


]]></description><category></category></item><item><title><![CDATA[nsis打包流程]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/107080956</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/107080956</guid><author>ffmemcpy</author><pubDate>Thu, 02 Jul 2020 11:33:46 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/arvin0/article/details/56482370
]]></description><category></category></item><item><title><![CDATA[c++11 thread]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/106208188</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/106208188</guid><author>ffmemcpy</author><pubDate>Tue, 19 May 2020 10:42:01 +0800</pubDate><description><![CDATA[thread创建：

void func(int i)
{
 cout &lt;&lt; "func" &lt;&lt; endl;
}

thread t(func, 1);
t.join();

注意我们应该保证线程对象的生命周期在线程函数执行完时仍然存在。

get_id获取当前线程id，hardware_concurrency获取cpu核心数，sleep_for让当前的线程休眠一定时间
...]]></description><category></category></item><item><title><![CDATA[c++11 std::shared_ptr std::uniq_ptr std::weak_ptr]]></title><link>https://blog.youkuaiyun.com/ffmemcpy/article/details/106197401</link><guid>https://blog.youkuaiyun.com/ffmemcpy/article/details/106197401</guid><author>ffmemcpy</author><pubDate>Mon, 18 May 2020 18:16:32 +0800</pubDate><description><![CDATA[std::shared_ptr共享的智能指针，内部使用了引用计数，当引用计数为0的时候，内存就会被释放。

智能指针的初始化：

 std::shared_ptr&lt;int&gt; p(new int(1));
 std::shared_ptr&lt;int&gt; p2 = p;
 std::shared_ptr&lt;int&gt; ptr;
 ptr.reset(new int(2));

 if (ptr)
 {
  cout &lt;&lt; "...]]></description><category></category></item></channel></rss>