动态加载js文件

动态加载js并执行方法(先js再调用方法)

方法一:// jq封装方法获取到js成功后 再执行initMap();

jQuery.getScript()函数用于通过HTTP GET形式的加载JavaScript文件并运行它

函数可以加载跨域的JS文件。请注意,该函数是通过异步方式加载数据的。

$.getScript(“http://webapi.amap.com/maps?v=1.3&key=fc1cc89768a5da46f78aaed607835069”,function(){initMap()});

方法二:js

var script=document.createElement(“script”);
script.type=”text/javascript”;
script.src=”jquery.js”;
document.getElementsByTagName(‘head’)[0].appendChild(script);

script.onload=function(){方法内容}//js加载完成执行方法

duilib基本系统按钮相应


void CLoginWnd::OnClick(TNotifyUI& msg)
{
    __super::OnClick(msg);
    if (msg.pSender->GetName() == _T("sys_min"))
    {
        ::ShowWindow(GetHWND(),SW_SHOWMINIMIZED);
    }
    else if (msg.pSender->GetName() == _T("sys_max"))
    {
        // 判断窗口是否最大化
        if (IsZoomed(GetHWND()))
        { // 已经最大化,进行窗口还原
            ::ShowWindow(GetHWND(), SW_SHOWNORMAL);
        }
        else
        { // 未最大化,进行窗口最大化
            ::ShowWindow(GetHWND(), SW_SHOWMAXIMIZED);
        }
    }
    else if (msg.pSender->GetName() == _T("sys_clo"))
    { // 关闭
        Close();
    }
}

C++中explicit的用法

C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。

C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。

1 是个构造;2 是个默认且隐含的类型转换操作符。

所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。

这样看起来好象很酷, 很方便。 但在某些情况下, 却违背了程序员的本意。 这时候就要在这个构造器前面加上explicit修饰, 指定这个构造器只能被明确的调用/使用, 不能作为类型转换操作符被隐含的使用。

解析:explicit构造函数是用来防止隐式转换的。请看下面的代码:


#include 
using namespace std;
class Test1
{
public :
    Test1(int num):n(num){}
private:
    int n;
};
class Test2
{
public :
    explicit Test2(int num):n(num){}
private:
    int n;
};
 
int main()
{
    Test1 t1 = 12;
    Test2 t2(13);
    Test2 t3 = 14;
        
    return 0;
}

编译时,会指出 t3那一行error:无法从“int”转换为“Test2”。而t1却编译通过。注释掉t3那行,调试时,t1已被赋值成功。
注意:当类的声明和定义分别在两个文件中时,explicit只能写在在声明中,不能写在定义中。
QQ截图20180718134323.png
转载:https://blog.csdn.net/qq_35524916/article/details/58178072

git常用操作

创建并切换分支

git checkout -b dev

查看当前分支

git branch

添加子模块

git submodule add https://github.com/chaconinc/DbConnector

提交

git push -u origin master

拉取子模块

git submodule init 初始化子模块
git submodule update 更新子模块
git submodule foreach git pull 拉取所有子模块

git lfs intsall
git lfs pull

彻底卸载Cfree5.0

Cfree5软件使用过程中经常出现界面混乱的现象,出现问题后基本没有恢复。卸载后重装是唯一选择。但Cfree的卸载看似简单,但重新安装后发现问题依旧,说明没有完全卸载。总结别人的卸载方法,实际操作后确认后(win7下),归纳方法如下:

1、使用通用方法卸载程序,查看并并确认已经删除该安装文件夹下所有文件。

2、找到C:Program FilesInstallShield Installation Information,把这个文件夹的文件删除

  重新搜索C:\目录下是否有Cfree,若有删除。

3、在C:UsersAdministrator我的文档 中找到C-FREE目录,全部删除。

4、在注册表(regedit)中找到HKEY_CURRENT_USER-Software-C-free目录,全部删除。

5、在注册表(regedit)中的HKEY_CLASSES_ROOT项下,找到
CFree.c,CFree.cfp,CFree.cfpg,CFree.cpp,CFree.cpp,CFree.h,CFree.hpp项,并删除。

6、重启win7.