Windows+Eclipse+MinGW+Qt
(嵌入式考试的最后一题编程题居然是Qt GUI。。。囧。。)
几个下载地址:
- Eclipse for cpp developer:http://www.eclipse.org/downloads/ 里面找个for Cpp的
- Qt MinGW+SDK for Windows:http://qt.nokia.com/downloads/sdk-windows-cpp
- Qt Eclipse Integration:http://qt.nokia.com/developer/eclipse-integration
(其实直接装Qt Creator更好用的说 囧。。)
MFC模拟登陆FNOJ...
可以算是第一个MFC程序吧 > <
昨天晚上用Java写了一个可以支持多个OJ的(POJ/ZOJ/FNOJ/HOJ),进度10%
(不过完全不知何时有兴致会继续 = ___= 前天还在玩网游的说……)
白天在公司米有环境,正好米什么事情,于是就来练习下MFC好了,
写了一个只能查自己代码的,运行截图如下:
还是小笔记,CLR中TextBox移动到最后一行。。
两句话。。在更新语句后执行即可。。
-
m_tb_ServerMessage->Select(m_tb_ServerMessage->TextLength, 0);//光标定位到文本最后
-
m_tb_ServerMessage->ScrollToCaret();//滚动到光标处
CLR下的几个转换String函数:IP、时间及char*
CLR是什么。。。。至今不懂。。大概就是.NET Framework里的某个东东吧 = =。
还是做SHELL的时候,查了些资料写得。。很简单。。贴之以后可复用。。
dllimport与dllexport。。
之前写过模块化编程的练习,里面定义导出符号的时候使用了形如下文的代码。
-
#ifdef SYSTEM_EXPORTS
-
#define SYSTEM_API __declspec(dllexport)
-
#else
-
#define SYSTEM_API __declspec(dllimport)
-
#endif
今天同学问是啥意思。。不明。。于是经过同桌指点 终于大概晓得了。。
上面这段代码通常写在.h文件中,我们编译有导出函数的dll时,就用dllexport,这时我们一般在预处理器中已经输入了SYSTEM_EXPORTS,使SYSTEM_API替换成export,
在exe使用的时候应该是import的,此时我们包含这个.h文件,而exe的预处理器中不会包含SYSTEM_EXPORTS,SYSTEM_API就变成import了。
= = 更详细一点来说,我们写dll的时候 需要声明和定义dllexport的函数/类。
而我们用exe来调用dll的时候,必须包含一个带有上述函数/类的dllimport的声明。如果使用这种写法,就可以使用一个.h文件,在dll的时候做export作用,在exe的时候做import作用了。
空指针也能调用对象成员函数。。
这段代码能运行吗?
/////////////////////////////////////////////////////// // CopyRight(c) 2009, YOYO, All Rights Reserved. // Author: LIN YiQian // Created: 2009/10/14 // Describe: For Test ^^ /////////////////////////////////////////////////////// #include <iostream> using namespace std; class CTest { public: void print(const char* const pszMsg) { cout << pszMsg << endl; } }; int main(void) { CTest* pTest = NULL; pTest->print("hello world"); return 0; }
MySQL++调用存储过程
其实与普通调用SQL没有什么区别,只是连接方式必须使用CLIENT_MULTI_STATEMENTS(多行语句)。样例代码如下:
////////////////////////////////////////////////////////////////////////// // CopyRight(c) 2009, YOYO, All Rights Reserved. // Author: LIN YiQian // Created: 2009/10/14 // Describe: MySQL++调用存储过程 ////////////////////////////////////////////////////////////////////////// #ifdef _DEBUG #pragma comment(lib, "mysqlpp_d.lib") #else #pragma comment(lib, "mysqlpp.lib") #endif #include <mysql++.h> #include <string> #include <iostream> using namespace mysqlpp; using namespace std; int main(void) { Connection conn(false); conn.set_option(new mysqlpp::MultiStatementsOption(CLIENT_MULTI_STATEMENTS)); if (conn.connect("test", "localhost", "root", "root", 3306)) { Query query = conn.query(); char* pszSQL = "call querydate()"; StoreQueryResult pResult = query.store(pszSQL, strlen(pszSQL)); cout << pResult[0][0] << endl; } else { cout << "连接失败!" << endl; } system("pause"); return 0; }
使用MySQL++提示找不到mysql_version.h
= _ = 在mysql的include目录下找到了。
可以直接拷过去,但貌似还需要其他文件,
因此可以将mysql的include目录设为附加包含目录。