在我的開發電腦中,可以執行(秀出jpg和gif),但是其他電腦不行。
雖然我知道是dll的問題,但是還是找好久。
在執行檔處,建立一個資料夾叫imageformats
然後將qt\plugins\imageformats內要用的dll複製到剛剛建立的資料夾
2010年11月23日 星期二
2010年11月10日 星期三
在Qt中列出所有serial port
由於QSettings不能利用含有反斜線的key,來找到值。
所以只好和winapi交互利用。
要注意的是QSettings得到的鍵值是斜線,可是winapi是反斜線
所以只好和winapi交互利用。
要注意的是QSettings得到的鍵值是斜線,可是winapi是反斜線
const QStringList WinDongle::getComPort()
{
QStringList comports;
QString keyPath = "HARDWARE\\DEVICEMAP\\SERIALCOMM";
HKEY comsKey;
LPCWSTR winKeyPath = (LPCWSTR)keyPath.constData();
if(RegOpenKey(HKEY_LOCAL_MACHINE, winKeyPath, &comsKey) != ERROR_SUCCESS)
{
error = UNKNOW;
RegCloseKey(comsKey);
return comports;
}
QSettings settings(QString("HKEY_LOCAL_MACHINE\\")+keyPath, QSettings::NativeFormat);
QStringList keys = settings.allKeys();
foreach( const QString & key, keys )
{
QString newKey(key);
newKey.replace(QString("/"), QString("\\"));
LPCWSTR winKey = (LPCWSTR)newKey.constData();
char *szData= new char[101];
DWORD dwType, dwLen=100;
if (RegQueryValueEx(comsKey, winKey,
NULL, &dwType, (unsigned char *)szData, &dwLen) == ERROR_SUCCESS)
{
comports.append( QString::fromUtf16((ushort*)szData) );
}
delete[] szData;
}
RegCloseKey(comsKey);
return comports;
}
參考資料:在 Win32 下 Serial Port 的通訊Qt 字串轉換
//Convert a QString To LPCTSTR
LPCTSTR QString_To_LPCTSTR(QString mQTData)
{
return (LPCTSTR)mQTData.utf16();
}
//Convert a QString To LPCSTR
LPCSTR QString_To_LPCSTR(QString mQTData)
{
return (LPCSTR)mQTData.utf16();
}
//Convert a QString To LPTSTR
LPTSTR QString_To_LPTSTR(QString mQTData)
{
return (LPTSTR)mQTData.utf16();
}
//Convert a LPCTSTR To QString
QString LPCTSTR_To_QString(LPCTSTR mWinData)
{
return QString::fromUtf16((ushort*)mWinData);
}
//Convert a LPBYTE To QString
QString LPBYTE_To_QString(LPBYTE mWinData)
{
return QString::fromUtf16((ushort*)mWinData);
}
//Convert a Char[] To QString
QString Char_To_QString(char mWinData[])
{
return QString::fromUtf16((ushort*)mWinData);
}
//Convert a WCHAR* to a QString
QString WCHAR_to_QString(WCHAR* mBuffer)
{
return QString::fromWCharArray(mBuffer);
}
//Convert a TCHAR To QString
QString TChar_To_QString(TCHAR mWinData[])
{
return QString::fromUtf16((ushort*)mWinData);
}
資料來源 VQTConver
2010年11月7日 星期日
opengl 視窗置中
其實視窗置中和openGL一點關係都沒有
問題在你的視窗是誰建立的
是用glfw? glut? or ??
至於置中,就還簡單了
視窗的左上角位置 = 0.5 X( 桌面大小 - 視窗大小 )
問題在你的視窗是誰建立的
是用glfw? glut? or ??
至於置中,就還簡單了
視窗的左上角位置 = 0.5 X( 桌面大小 - 視窗大小 )
// Open a window and create its OpenGL context
if( !glfwOpenWindow( width, height, 0,0,0,0, 0,0, GLFW_WINDOW ) ) {
fprintf( stderr, "Failed to open GLFW window\n" );
glfwTerminate();
exit( EXIT_FAILURE );
}
GLFWvidmode desktop;
glfwGetDesktopMode( &desktop );
int posX = 0.5 * ( desktop.Width - width );
int posY = 0.5 * ( desktop.Height - height );
glfwSetWindowPos( posX, posY );
CodeLite
每次在用Code::Block都覺得用的很不習慣
尤其最近用久了Qt Creator後
整個寫code的習慣,都被養刁了
但是我又不想用vc
終於讓我找到CodeLite了
不管是畫面,熱鍵配置都比Code::Block好太多了
尤其最近用久了Qt Creator後
整個寫code的習慣,都被養刁了
但是我又不想用vc
終於讓我找到CodeLite了
不管是畫面,熱鍵配置都比Code::Block好太多了
2010年11月4日 星期四
Squirrel
今天灌Code::Block時發現Squirrel的選項。
wiki了一下
It is used extensively by Code::Blocks for scripting and was also used in Final Fantasy Crystal Chronicles: My Life as a King[2] It is also used in Left 4 Dead 2 for scripted events[3].
沒想到才幾年而已,就流行起來了
wiki了一下
It is used extensively by Code::Blocks for scripting and was also used in Final Fantasy Crystal Chronicles: My Life as a King[2] It is also used in Left 4 Dead 2 for scripted events[3].
沒想到才幾年而已,就流行起來了
訂閱:
文章 (Atom)