發表文章

Directx9 + CEGUI (0.8.2)

圖片
Directx9 + CEGUI (0.8.2) CEGUI (0.8.2) 的設定請看這裡 http://blog.xuite.net/kamory0931/fightdreamer/84924124 DirectX9.0 最簡單的程式碼在這裡 http://blog.xuite.net/kamory0931/fightdreamer/59899354 環境 Windows 7 64-bit Visual Studio 2010 Microsoft DirectX SDK (June 2010) CEGUI 0.8.2 首先建立執行環境 把這些資料夾裡的東西通通放到同一個資料夾底下 程式將在這個資料夾底下執行 CEGUI-0.8.2\bin  <-主要是DLL CEGUI-0.8.2\dependencies\bin  <-主要是DLL cegui-0.8.2-src\datafiles <- copy 整個 datafiles 資料夾 再建立程式編譯環境 Include D:\CEGUI\CEGUI-0.8.2\dependencies\include D:\CEGUI\CEGUI-0.8.2\cegui\include C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include Lib D:\CEGUI\CEGUI-0.8.2\dependencies\lib\static D:\CEGUI\CEGUI-0.8.2\dependencies\lib\dynamic D:\CEGUI\CEGUI-0.8.2\lib C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 main.h #ifndef __MAIN_H #define __MAIN_H //windows 相關 #include <stdio.h> #include <windows.h> #include <tchar.h> //directx 相關 #include <d3d9.h> #include <d3dx9.h> //CEGUI #includ...

C++ 程式中呼叫執行其他程式

 C++ 程式中呼叫執行其他程式 ShellExecute ShellExecute(NULL,NULL, L"C:\\Users\\user\\Desktop\\test01\\test001.exe",L"1",NULL,SW_SHOW); 只有ShellExecute可以另外執行,但必須使用win32,其他都會執行在裡面 參考資料 https://www.itread01.com/content/1544387964.html https://www.itread01.com/content/1548806230.html

CEGUI 設置與編譯 (CEGUI 0.8.2)

圖片
 CEGUI 設置與編譯 (CEGUI 0.8.2) 日期2013/08/24 環境 Windows 7 64-bit Visual Studio 2010 Microsoft DirectX SDK (June 2010) CEGUI 0.8.2 官方網站 http://www.cegui.org.uk/wiki/index.php/Main_Page http://www.cegui.org.uk/wiki/index.php/Downloads 首先去下載 CMake 並安裝 下載 CEGUI  解壓縮 新增一個 CEGUI-0.8.2-DEPS 資料夾 執行一開始安裝的 CMake 設定好資料夾並按 Generate   設定要產生的專案類型     設定要使用的編譯器 (C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\cl.exe)     產生完成   開啟剛剛產生好的 sln   確認是 win32     Rebuild (Debug 和 Release 都要)     解壓縮另一個檔案     把剛剛解壓縮出來的資料夾改個名字     新增一個資料夾     把剛才專案 build 出來的 dependencies 資料夾複製到cegui-0.8.2-src 資料夾裡     開啟 CEGUI 並設定好資料夾路徑   產生完成     把 CEGUI-0.8.2-DEPS 資料夾裡的 dependencies 資料夾複製到 CEGUI-0.8.2 資料夾裡     開啟剛剛產生的專案     Rebuild 之後會出現錯誤 因為我沒有辦法知道這些錯誤的真正原因為何 所以只能做些簡單修改 讓 lib 的產生先能夠順利再說     (還好我用的不是 Direct3D10) 新增一個資料夾 CEGUI-0.8.2-sample     把 CEGUI-0...

utf-8 batch 檔命令列參數的錯誤

圖片
utf-8 batch 檔命令列參數的錯誤 結論:要使用命令列參數的 batch 檔不要做成 utf-8 的 或是 Win10記事本(Notepad)預設編碼UTF-8修改為ANSI http://blog.udn.com/amisay168/128020244 用 Visual Studio 產生出來的 .h、.cpp、.c 等程式碼的文字檔,預設都是 ansi 的。如果在程式碼裡放個日文,預設存檔會變成 UTF8 BOM,以下程式是可以正常執行的 #include <iostream> #include <windows.h> using namespace std; void PrintfUnicode(const wchar_t* szFormat, ...) //在 console 印出 Unicode {     const int MAX_PRINT_NUM = 1024;     wchar_t szPrint[MAX_PRINT_NUM] = L"";     va_list pArgs;     va_start(pArgs, szFormat);     vswprintf_s(szPrint, szFormat, pArgs);     va_end(pArgs);     WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), szPrint, (DWORD)wcslen(szPrint), NULL, NULL); } int main() {     wchar_t szPrint[512] = L"ハリー・ポッター";     PrintfUnicode(L"%s\n", szPrint);     system("pause");     return 0; } 但是下面針對命令列參數的研究是失敗的。 utf-8 batch 檔本身的字碼是沒有問題的,但不知道為什麼,傳進 exe 檔就會錯誤。 e4 = -28 b8 = -72 ad = -83 ...

MSVC 與 CRT 之間的恩怨情仇

圖片
MSVC 與 CRT 之間的恩怨情仇 這篇文章是引用自http://www.aiuxian.com/article/p-346587.html 很久沒有寫程式設計入門知識的相關文章了,這篇文章要來談談程式庫 (Library) 連結,以及關於 MSVC 與 CRT 之間的種種恩怨情仇。 如果你的作業系統是 Windows,而且你使用的程式整合開發環境是 MSVC 軟體撰寫 C++ 程式的話,這篇文章應該能夠幫助你釐清一些重要的基礎觀念。 身為程式設計者,在學習程式設計的過程中,你是否曾經遇過某些看起來不知所云的錯誤訊息,卻不知該如何解決?例如當你快快樂樂地寫完程式,並且確認所有的程式碼都能成功通過編譯之後,接著執行「建置方案」(Build Solution) 的步驟,結果卻跑出一堆莫名其妙的錯誤: LIBCMTD.lib(mlock.obj) : error LNK2005: __lock 已在 MSVCRTD.lib(MSVCR80D.dll) 中定義過了 LIBCMTD.lib(mlock.obj) : error LNK2005: __unlock 已在 MSVCRTD.lib(MSVCR80D.dll) 中定義過了 LIBCMTD.lib(crt0.obj) : error LNK2005: _mainCRTStartup 已在 MSVCRTD.lib(crtexe.obj) 中定義過了 ………… LINK : warning LNK4098: 預設的程式庫 ‘MSVCRTD’ 與其他使用的程式庫衝突,請使用 /NODEFAULTLIB:library LINK : warning LNK4098: 預設的程式庫 ‘LIBCMTD’ 與其他使用的程式庫衝突,請使用 /NODEFAULTLIB:library D:\Workspace\CrtLibTest\Debug\CrtLibTest.exe : fatal error LNK1169: 找到有一或多個已定義的符號 以一般的情況來說,如果在你的程式專案中有使用某些由他人所撰寫的第三方程式庫或是開源專案的程式庫,比較容易會發生上述的錯誤狀況。從上述這些看似離奇而令人摸不著頭緒的錯誤訊息中,我們大概可以猜測問題點應該在於 LIBCMTD.lib 與 MSVCRTD.lib 這兩個程式庫身上。但到底什麼是 LI...

魔術方塊

圖片
 魔術方塊

言魂事務所-03

言魂事務所-03 一陣強光之後,我看到一個手上有一顆白色的小球。 寒星說:「哇~真讓我驚訝,以第一次上工來說,你的表現很好呢!」 我問:「寒星,那個言魂是消失了嗎?」 寒星:「可能會消失,也可能不會。」 我說:「但是球已經沒有顏色了啊,不是代表他消失了嗎?」 寒星:「沒有顏色只是代表本心沒有出現拉扯,並不是代表言魂消失了喔!」 我:「我們不能讓言魂直接消失嗎?」 寒星說:「言魂是由語言的力量所生,說出去的話可以收回嗎?」 我問:「呃...不行。」 寒星說:「但本心受這語言的影響有多大,這力量就有多大。如果本心不在乎,那就沒有力量。如果小女孩不再在意被嘲笑的事,那這個力量就會變小,甚至消散,言魂就消失了,所以最終還是要看本心。」 寒星說:「力量沒有好壞,所以言魂也沒有好壞,一切都在於本心,這些力量有沒有讓本心違背他的意願,讓本心產生拉扯,才是我們要處理的問題。」 寒星說:「而且我們只能使用語言的力量,我們並沒有消滅或收回的能力。」 寒星說:「語言還有一種特性,就是它在就是在了。」 我:「蛤,什麼意思?」 寒星說:「不要去想一隻彩虹色的蟑螂。」 我:「彩虹色的...什麼?」 寒星說:「你現在腦袋裡是不是出現了什麼東西?」 我:「是啊,彩虹色的蟑螂,你說的。」 寒星說:「但我前面叫你不要去想了。」 我:「...」 寒星說:「沒有用對吧。」 寒星說:「如果是一個怕蟑螂的人聽到剛才那句話,他就會受到影響,這個語言就會產生力量,他可能突然會感到害怕,無論我前面是不是有加了『不要』,甚至是這世界上根本沒有彩虹色的蟑螂。」 我:「那他會產生彩虹色的蟑螂言魂嗎?」 寒星說:「可能會,不過這種情況也是一下子就消失了,因為大部分人不會一直去在意這種無厘頭的話。」 寒星說:「但你還是要小心,在就是在了,就算前面加了『不要』也一樣。」