Archive for 'C++'

DirectCanvas貌似很有戏。

等待@jmorrill放出C++版本的DirectCanvas。之后MetalBone就用定它了。

MetalBone – Windowless C++ GUI Lib

  • MetalBone是什么?

MetalBone是一个windowless的C++ GUI Library。就是别人常说的DirectUI。项目地址:https://github.com/WarWithinMe/MetalBone。使用的是WWM协议(LGPL附加几个条件)。

  • MetalB[......]

继续阅读

[Quick Code]Windows读取UTF-8文本。

using namespace std;
wstring readUTF8Text(const wstring& path)
{
HANDLE specFile = ::CreateFileW(path.c_str(),GENERIC_READ,
0,0,OPEN_EXISTI[......]

继续阅读

TwitWar是时候结束了

TwitWar目前遇到的最大的问题是,再做下去没有意思。
微博,社交网络的PC客户端效果不会太好,除非有足够的人力物力和想法。网页上提供了足够灵活方便的浏览形式,唯一要做的就是F5——刷新。人们大多也习惯于这样的操作。。。所以说,客户端唯一的功能就是提醒。能让用户在不能够刷主页(正在工作、学习)的时[......]

继续阅读

Google C++ 风格指南

终于找到一个很详细的代码编写风格指南了。

http://yangyubo.com/google-cpp-styleguide

Qt,HMAC-SHA1的实现

Qt有一个第三方库来支持加密解密,叫做QCA,它以插件的形式来提供加密解密功能,最简单的应该是它的openssl插件,只要搭配上openssl,就能支持N多种加密解密功能。
不过如果你只是使用其中一两种,调用QCA未免有些大题小做。QCA和它的插件本身就会占用资源,而且deploy也会更加麻烦。所以[......]

继续阅读

GDI++导致不能debug

话说,之前debug qt程序的时候,一开debug就提示我segment错误。。搞了一大段都不晓得是啥门子问题。还以为是qt的问题,还好没破口大骂,嘿嘿。。
有些时候还是可以debug的,大部分时候都提示出错。还以为连debug都要拼RP,于是屡战屡败,屡败屡战。最后不晓得在IDE哪里位置看到GD[......]

继续阅读

[Qt]qt的正则不支持反向预搜索,只支持正向预搜索

像这样的:
(?=xxx)
(?!xxx)
是支持的。。

像这样的:
(?<=xxx)
(?< !xxx)是不支持的。。。

[Qt]Qt与OAuth验证,还有那个QCA,QCA-OSSL,OpenSSL

根据Twitter的API Wiki,基本的OAuth验证workflow如下:
1. 程序利用http://api.twitter.com/oauth/request_token来从twitter.com那里获取一个request token。
2. 然后程序引导用户到http://api.twitter.com/oauth/authorize页面。
3. 用户如果同意授权,twitter.com则会显示一个7位数字的PIN码。
4. 用户需要将PIN码复制,然后回到程序那里。
5. 之后程序要提示用户输入得到的PIN码。
6. 然后程序将PIN码作为参数oauth_verifier的值,接着调用http://api.twitter.com/oauth/access_token去核实PIN码,从而将request_token 换成access_token。
7. Twitter之后会返回一个access_token,程序就此token来生成之后的OAuth签名。
[......]

继续阅读

如何让QString和char互换

如何令QString跟char*互换?(How can I convert a QString to char* and vice versa ?(trolltech))

答:(Answer:)
要将QString换成char*,首先得要获得这个QString的latin1表示。可以通过调用QString.toLatin1()来得到表示成latin1的QByteArray对象。然后调用QByteArray.data()去获得指向储存在bytearray里面的数据的指针。(In order to convert a QString to a char*, then you first need to get a latin1 representation of the string by calling toLatin1() on it which will return a QByteArray. Then call data() on the QByteArray to get a pointer to the data stored in the byte array. See the documentation:)
[......]

继续阅读