git 基本操作记录

2017-12-9 C++

1. 创建空版本库方便上传已有版本库代码

git init --bare

2.项目代码加入git版本控制

git init //初始化git版本库

git add . //把当前项目文件夹内的文件加入版本控制

git commit -m "备注" //提交所有代码到版本库

3. 提交代码到远程版本库

git remote add usb h:\gitres\xxx //usb 远程版本库标识 h:\gitres\xxx 远程版本库位置

git push usb master //提交代码到远程版本库

4. 下载合并远程版本库变动到本体

git fetch usb :tmp //先下载远程版本库到tmp分支

git diff tmp    //刚获取的远程版本库跟本地文件的差异

git merge tmp    //合并远程版本库代码到本地

5. 新建分支切换

git checkout -b newbranch

6. 放弃当前修改

git checkout . //放弃所有的修改

git checkout -- file //放弃文件file的改动

标签: git

评论(0) 浏览(2514)

ado open 连接数据库卡住

2017-12-3 C++

情景:

程序采用ado访问access数据库

现象:

公司编译生成的程序在公司的电脑上运行没问题,但是到了客户的电脑上运行就卡住!

解决办法:

通过打印调试信息,发现程序是卡在数据库open的时候,就不往下走了!

对比了下ado版本,发现客户电脑上的ado版本比公司编译环境的低!

替换掉客户端电脑上的msado.dll,问题解决

标签: MFC ado windows

评论(0) 浏览(3775)

windbg调试句柄泄露

2017-11-22 C++

场景:程序运行后句柄一直往上增加,导致程序崩溃 解决办法:利用windbg提供的!htrace,分析未关闭的句柄 帮助:windbg命令行输入!htrace -?可以查看帮助 步骤: 使用windbg打开要调试的程序 1 在命令行输入”!htrace -enable” 打开句柄回溯 2 输入g启动程序运行 3 运行一会儿后正常关闭程序 4 输入!htrace 查看打开的句柄 5 输入!htrace -diff 分析未关闭的句柄

标签: windbg 调试 句柄泄露

评论(0) 浏览(3412)

windbg调试程序崩溃

2017-11-22 C++

场景:程序运行到一半崩溃,程序一开始有重定向dmp文件输出,到时到现场环境,崩溃后不产生dmp文件 解决方案:使用windbg启动程序 步骤: 可以使用windbg直接运行程序,启动后输入g,程序开始运行 也可以程序运行后windbg挂载上去 调试方法: 程序崩溃后输入!analyze -v分析可能出现崩溃的原因 使用.dump /m 转储路径!生成标准dmp文件 也可以通过.dump /ma 转储路径!生成完整dump文件 利用dmp文件分析崩溃原因 1.配置pdb路径(d:\mysymbol)为本地缓存路径 SRV*D:\mysymbol*http://msdl.microsoft.com/download/symbols 2命令行输入.reload 重新加载符号文件 3输入!analyze -v 分析可能产生崩溃的原因

标签: windbg 调试

评论(0) 浏览(3277)

c++面试

2017-9-6 C++

基础:

进程与线程的区别

写一个宏返回最小值

双向链表删除某个节点,插入节点

单链表反转

字符串反转

String构造类、操作符=重载

字符串循环右移

exe的文件头结构

虚构函数可以直接调用吗

构造函数初始化列表异常捕获

Makefile怎么编译一个文件

dll信息在exe头文件哪里

gdb调试bt有什么作用

算法:

    牛牛判断牛几算法

int grad(int *arr, int len)

{   

    for (int i = 0; i < len; i++)

    {   

        for (int j = 0; j < len; j++)

        {   

            for (int k = 0; k < len; k++)

            {   

                if (i !=j && i !=k && k != j)

                {   

                    if ((arr[i] + arr[j] + arr[k]) % 10 == 0)

                    {   

                        int sum = 0; 

                        for (int l = 0; l < len; l++)

                        {   

                            sum += arr[l];

                        }

                        return (sum - arr[i] - arr[j] - arr[k]) % 10;

                    }

                }

            }

        }

    }

    return -1;

}


    k个任务,每个任务有开始时间和结束时间,求24小时内最大执行任务数


    斗地主随机洗牌算法


Fisher–Yates shuffle 洗牌算法

void shuffle(int *arr, int len)

 {

    for (int i = len - 1; i >= 0; i--)

    {

        int randomIndex = rand() % (i + 1);

        int itemIndex = arr[randomIndex];

        arr[randomIndex] = arr[i];

        arr[i] = itemIndex;

    }

 }



使用:

    多线程无锁编程:

http://blog.csdn.net/zzulp/article/details/6259866


     send与write区别:


在功能上,read/write是recv/send的子集。read/wirte是更通用的文件描述符操作,而recv/send在socket领域则更“专业”一些。

当recv/send的flag参数设置为0时,则和read/write是一样的。

如果有如下几种需求,则read/write无法满足,必须使用recv/send:

  1. 为接收和发送进行一些选项设置
  2. 从多个客户端中接收报文
  3. 发送带外数据(out-of-band data)


标签: c++

评论(0) 浏览(2744)

git使用步骤

2017-3-13 C++

利用git进行代码版本管理步骤:

第一步:初始化版本库:

 进入要进行版本控制的代码目录执行:git init .

第一步:从其他版本库克隆过来:

如要从远程机器的test.git克隆项目:

git clone http://xxx/test.git test

第二步:对代码进行修改

第三步:提交修改的代码

git add .(这是提交所有有修改的文件,如果只要提交特定的文件请参阅git帮助)

第四步:提交说明:

git commit -m "测试提交"

第五步:push代码到远程版本库:

git push origin master


git相关命令说明:

git remote [-v] :查看远程目录地址


标签: git

评论(0) 浏览(2544)

windows 利用apache + git 搭建远程版本仓库

2017-3-13 C++

需求:

    局域网内电脑代码同步管理

环境:

    mac osx/windows7

软件:

    wamp:安装php + http + mysql 开发环境

    git:git版本控制

步骤:参考http://blog.csdn.net/wangwei_cq/article/details/9379757

    第一步:安装wamp:傻瓜化一步步就可以

    第二步:安装git:基本也是傻瓜化看情况选择配置

    第三步:配置Apache服务器

进入Apache安装目录下的conf目录,打开httpd.conf文件,找到<directory />节点,修改如下:

<directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</directory>

然后在httpd.conf文件的末尾追加:

# Set this to the root folder containing your Git repositories.

# 指定 Git 版本库的位置

SetEnv GIT_PROJECT_ROOT C:/workspace

# 该目录下的所有版本库都可以透过 HTTP(S) 的方式存取

SetEnv GIT_HTTP_EXPORT_ALL

# Route specific URLS matching this regular expression to the git http server.

# 令 Apache 把 Git 相关 URL 导向给 Git 的 http 处理程序

ScriptAliasMatch \

"(?x)^/(.*/(HEAD | \

info/refs | \

objects/(info/[^/]+ | \

[0-9a-f]{2}/[0-9a-f]{38} | \

pack/pack-[0-9a-f]{40}\.(pack|idx)) | \

git-(upload|receive)-pack))$" \

"C:/Program Files/Git/libexec/git-core/git-http-backend.exe/$1"

#这边git-http-backend.exe安装路径又得时在c:/Program Files/Git/mingw64/libexec/git-core/git-http-backend.exe

<Location />

AuthType Basic

AuthName "GIT Repository"

AuthUserFile "C:/Program Files/Git/htpassword"

#密码需求,不需要可以注释掉

Require valid-user

</Location>

第四步:添加用户

进入Apache安装目录下的bin,执行

htpasswd -cmb htpassword abc 123456

把生成的htpassword放到c:/Program Files/Git(位置随意,跟上面的AuthUserFile对应就行)

第五步: 测试

进入c:/workspace 创建空版本库

git init --bare test.git

到目的电脑上执行命令上传版本

如:服务端ip为192.168.0.2

git push http://192.168.0.2/test.git master


标签: git apache

评论(0) 浏览(3560)

win10 createprocess等执行批处理窗口闪退

2016-10-26 C++

32位程序本来在win7 64位系统上运行没问题,后来系统升级到win10时,原先使用createprocess等执行的批处理程序启动不了

后来把程序编译成64位后就可以了!

通过测试,发现原来是win10系统上的32位cmd.exe启动不起来,而32位系统虽然是调用c:\windows\system32里面的cmd.exe,

实际上调用的是c:\windows\sysWow64里面的cmd.exe,具体可以查看如下网址解释:

http://www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html

当然如果要在32位系统调用system32里面的cmd.exe,微软也有提供接口实现!

Wow64DisableWow64FsRedirection:具体调用方式参考:

https://msdn.microsoft.com/zh-tw/library/aa365743(v=vs.85).aspx


标签: win10 createprocess 批处理

评论(0) 浏览(6635)

vs2008编译出错C2813 #import is not supported with /MP

2016-10-25 C++

用vs2008编译别人项目时候出错,报错码c2813  #import is not supported with /MP

上网找了下原因大致是import不支持并发编译;

具体错误解释https://msdn.microsoft.com/zh-cn/library/bb384890.aspx

解决办法:在项目属性的c/c++命令行加上额外参数/MP1 使用单处理器编译

标签: vs2008 C2813 MP

评论(0) 浏览(8165)

OpenProcess 打开任务列表不存在进程返回200

2016-10-12 C++

通过OpenProcess判断进程存不存在时,

对于在进程管理器不存在的进程通过OpenProcess打开时返回不为NULL

原因是进程存在时open时没有关闭HANDLE

进程关闭后,虽然在进程管理器找不到该进程,

但是openprocess打开返回不为NULL

解决办法,保证每个openprocess后都对应closehandle

标签: VC OpenProcess

评论(0) 浏览(3471)

Powered by EMLOG Copyright @ 深圳市炽旗科技 版权所有. 闽ICP备14012694号-2