Liny_@NotePad

沉迷ACG中

Windows+Eclipse+MinGW+Qt

(嵌入式考试的最后一题编程题居然是Qt GUI。。。囧。。)

几个下载地址:

(其实直接装Qt Creator更好用的说 囧。。)

MFC模拟登陆FNOJ...

可以算是第一个MFC程序吧 > <
昨天晚上用Java写了一个可以支持多个OJ的(POJ/ZOJ/FNOJ/HOJ),进度10%
(不过完全不知何时有兴致会继续 = ___= 前天还在玩网游的说……)
白天在公司米有环境,正好米什么事情,于是就来练习下MFC好了,
写了一个只能查自己代码的,运行截图如下:

还是小笔记,CLR中TextBox移动到最后一行。。

两句话。。在更新语句后执行即可。。

  1. m_tb_ServerMessage->Select(m_tb_ServerMessage->TextLength, 0);//光标定位到文本最后
  2. m_tb_ServerMessage->ScrollToCaret();//滚动到光标处

CLR下的几个转换String函数:IP、时间及char*

CLR是什么。。。。至今不懂。。大概就是.NET Framework里的某个东东吧 = =。

还是做SHELL的时候,查了些资料写得。。很简单。。贴之以后可复用。。

dllimport与dllexport。。

之前写过模块化编程的练习,里面定义导出符号的时候使用了形如下文的代码。

  1. #ifdef SYSTEM_EXPORTS
  2. #define SYSTEM_API __declspec(dllexport)
  3. #else
  4. #define SYSTEM_API __declspec(dllimport)
  5. #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目录设为附加包含目录。