预览模式: 普通 | 列表

开源MFC扩展界面库:Ultimate Toolbox的编译

下载地址:
http://www.codeproject.com/KB/MFC/UltimateToolbox.aspx

出现编译错误的文件:
OXHTMLParser.cpp
OXParser.cpp
OXPhysicalEditEx.cpp
OXQuickString.cpp

出错的原因乍看起来是字符串的引号不配对,实际上是因为Ultimate Toolbox的源码文件
都是WINDOWS-1252编码的,且文件中包含编码是0xA0的字符,这些字符无法在中文操作系
统下的VC++编辑器中正常显示。

解决方法是将这几个文件的编码转换为UTF-8,或者将“区域和语言选项”
中“非Unicode程序的语言”改为“英语-美国”。

查看更多...

分类:Win32&C++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 263
直接上代码:
 
// MySqlTest.cpp : 定义控制台应用程序的入口点。
//
 
#include <iostream>
using namespace std;
 
//MySQL Connector C++ 1.0.5,接口跟OracleOCCI长的很像(跟JDBC也像),Oracle-MySql官方网站可下载
//D:\Program Files\MySQL\MySQL Connector C++ 1.0.5\include
//D:\Program Files\MySQL\MySQL Connector C++ 1.0.5\lib\opt
 
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/exception.h>
using namespace sql;
using namespace sql::mysql;
 
#pragma comment(lib,"mysqlcppconn.lib")
 
int main(int argc, char* argv[])
{
    try
    {
        //数据库连接
        MySQL_Connection MySqlConn("localhost","root","006355");
       
        //选择数据库(模式)
        MySqlConn.setSchema("test");
 
        Statement *pStatement = MySqlConn.createStatement();
 
        //Mysql数据库中,我设置的编码是GB2312,但是这里读出的仍是UTF-8编码的字符
        //所以需这句来解决乱码问题
 
        //执行无记录集返回的语句
        pStatement->execute("set names gb2312");
 
        //执行有记录集返回的语句
        //注意反引号 "`",呵呵
        ResultSet* pRs=pStatement->executeQuery("Select * from `Users`");
 
        while (pRs->next())
        {
            cout<<pRs->getInt("id")<<endl;
           
 
            string sChineseText=pRs->getString(2);
            cout<<sChineseText<<":";
           
            //输出汉字的编码
            //D5 C5 C8 FD               张三  ANSI/OEM936:GBK/GB2312
            //E5 BC A0 E4 B8 89    张三  UTF8
            for (size_t i=0;i<sChineseText.length();i++)
            {
                printf("%02X ",(unsigned char)sChineseText[i]);
            }
            cout<<endl;
 
            cout<<pRs->getString("password")<<endl<<endl;
        }
       
        pRs->close();
        pStatement->close();
        MySqlConn.close();
    }
    catch (SQLException& ex)
    {
        cout<<"Error:"<<ex.what()<<endl;
    }
 
    return 0;
}

文档参见:《MySQL 5.5 Reference Manual》21.5. MySQL Connector/C++

可惜的是:
22.5.12.2: Which MySQL Server version(s) is MySQL Connector/C++ compatible with?
MySQL Connector/C++ fully supports MySQL Server version 5.1 and later.

使用低版本MySQL服务器的话,还需MySQL C API。

分类:Win32&C++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 263

控制台程序的文字颜色

// 控制台程序的基本文本颜色
// #define FOREGROUND_BLUE      0x0001 // text color contains blue.
// #define FOREGROUND_GREEN     0x0002 // text color contains green.
// #define FOREGROUND_RED       0x0004 // text color contains red.
// #define FOREGROUND_INTENSITY 0x0008 // text color is intensified.

//不同的组合可呈现如下几种颜色
 
■ 0x00
■ 0x01
■ 0x02
■ 0x03
■ 0x04
■ 0x05
■ 0x06
■ 0x07
■ 0x08
■ 0x09
■ 0x0a
■ 0x0b
■ 0x0c
■ 0x0d
■ 0x0e
■ 0x0f
 
//示例程序
int main(int argc, char* argv[])
{
    HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole,0x0c);//基本颜色的组合
  
  cout<<"红色文字"<<endl;
 
    return 0;
}
 
红色文字

备注:在控制台下可以通过color命令设置控制台窗口的文字颜色,例如"color 0c"设置颜色为红色。
具体使用方法可执行"color /?"

分类:Win32&C++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 117

用10分钟时间开始使用LaTex

1.下载安装CTex
目前的版本是CTeX 2.8.0.125,建议安装完整版
 
2.编写如下Tex脚本,保存为a.tex
\documentclass{article}
\usepackage{CJK}
\begin{document}
This is a test file.
\begin{CJK*}{GBK}{kai}
这是中文楷体和English混合文字。
\end{CJK*}
\end{document}
 
3.编译Tex脚本,生成一个dvi文件
lateX a.tex
 
4.生成pdf文件
dvipdfmx a.dvi
 
5.深入学习可参考的资源
分类:杂谈随感 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 192