VS软件开发转载

一.VS2005自带打包工具使用

http://hi.baidu.com/63club/item/20b24b11ef7acfe15f53b1f7

二.图标制作软件

IconWorkShop

三.写注册表

RegOpenKeyEx返回 2及原因 : http://www.cnblogs.com/ziwuge/archive/2012/03/19/2407163.html

注册表操作函数RegOpenKeyEx在win7 64下返回的值不正确: http://www.myexception.cn/h/1150394.html

我的环境使用unicode字符集:需要这样写:

if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
        _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),     //宽字符
        0, KEY_WRITE, &hKey) !=ERROR_SUCCESS){
        return -1;
    }


RegSetValueEx 写注册表乱码错误解决方法:

    wchar_t szValue[512];
    mbstowcs(szValue, pval, sizeof(pval));
    if(RegSetValueEx(hKey, _T("BrdService"), 0, REG_SZ, (CONST BYTE *)szValue, strlen(pval)+1)      //szValue参数必须是宽字符存储字符串
        !=ERROR_SUCCESS){                          //而调用RegSetValueEx函数的程序,必须以管理员身份运行。
        printf("Set Register Value Failed<%d>!\n", errno);
        RegCloseKey(hKey);
        return -1;
    }

总结:VS中 带 "Ex" 的函数使用unicode字符集,字符串参数必须是宽字节存储的。原来单字节存储的字符串不能强制转换为宽字符,需要使用函数:

mbstowcs和wcstombs函数相互转换。

如上RegSetValueEx函数中第5个参数即使是(const BYTE *)类型,也是宽字符存储空间的地址。






........持续更新中.........

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值