2009年10月25日 星期日

DirectCompute examples compile 失敗

出現 fatal error LNK1104: 無法開啟檔案 'dxerr9.lib'

因為裝的是 Microsoft DirectX SDK (August 2009) 版本的SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=b66e14b8-8505-4b17-bf80-edb2df5abad4&displaylang=en 這裡,我們找到以下段話:

DXERR9 library removed from the DirectX SDK

The DXERR9 library has been removed from the DirectX SDK as of the August 2009 release. The DXERR9 error look-up library has been deprecated for some time in favor of DXERR which supports a broad range of DirectX and related error codes. The DirectX SDK Error Look-up Tool uses DXERR.


很好= = ! 讓我們回到visual studio 下
解決方法:
1. 在 nBodyCS專案下按右鍵 -> 屬性 -> 組態屬性 ->連結器 -> 輸入 -> 其他相依性 ,打開編輯視窗後,找到dxerr9.lib的地方,將它改為dxerr.lib,別以為這樣就結束了,在往下一點找到d3d11_beta.lib的地方,將它改為d3d11.lib,之後按下確定就OK了。

2. 在 SimpleParticlesCS專案下如同上面的操作方式,將dxerr9.lib及d3d11_beta.lib,改為dxerr.lib及d3d11.lib,再次compile後就順利成功了。


後記:
bulid出來的檔案執行後,不知道為什麼都沒有任何動作,還在找原因... 就先寫到這... 冏

2009年9月19日 星期六

openSUSE 安裝 Firefox 安裝 flash-plugin

首先至http://www.moztw.org/下載linux版本的firefox
抓下來的檔案為 firefox-3.5.3.tar.bz2

打開終端機後輸入
sudo tar xf firefox-3.5.3.tar.bz2 解壓縮
sudo cp -r firefox /usr/share/ 將解壓後的資料夾複製到/usr/share目錄下
sudo ln -sf /usr/share/firefox/firefox /usr/bin/firefox 建立捷徑之後就可以由命令列呼叫
sudo ln -sf /usr/share/firefox/firefox /usr/bin/mozilla-firefox 建立捷徑之後就可以由命令列呼叫
爾後要開啟firefox只需要在命令列輸入firefoxmozilla-firefox即可

接下來要安裝flash-plugin, 因為無法直接由firefox安裝
所以必須到adobe官網 http://get.adobe.com/flashplayer/ 下載
下載時請選擇 .rpm 版本
抓下來的檔案為 flash-plugin-10.0.32.18-release.i386.rpm
打開終端機後輸入
sudo rpm -Uvh flash-plugin-10.0.32.18-release.i386.rpm 直接安裝套件
sudo cp /usr/lib/flash-plugin/libflashplayer.so /usr/share/firefox/plugins 將套件複製到firefox的plugins資料夾

OK! 重新開啟firefox後完成

2009年9月7日 星期一

VirtualBox 變更解析度 for openSUSE

VirtualBox:v2.2.4 r47978 openSUSE:v11.1

在VirtualBox下安裝完openSUSE後,發現解析度只能選擇800x600





其實是因為還沒安裝顯卡的driver,但因為在VirtualBox下的顯卡是模擬出來的,因此必須安裝VirtualBox自帶的顯卡driver

在安裝driver之前,系統提示要先更新 linux kernel
依據以下步驟即可完成更新

1.首先在桌面按右鍵,接著點選"在終端機中開啟"



2.開啟終端機後,輸入 sudo zypper install gcc make automake autoconf kernel-source



3.接著輸入密碼(root的密碼),等待幾分鐘後即可完成kernel的更新







完成kernel更新後,可以開始安裝driver了

首先,先將VirtualBox工具掛上去


取消自動執行



回到剛剛的終端機畫面
輸入 cd /media 切換資料夾
再輸入 ls 可看到 VBOXADDITIONS_2.2.1_47978 資料夾
接著再輸入 cd
VBOXADDITIONS_2.2.1_47978 切換到VBOXADDITIONS_2.2.1_47978 資料夾
再輸入 ls 可看到 VBoxLinuxAdditions-x86.run

接下來正式要安裝了
使用Intel CPU的人,請輸入 sudo sh ./VBoxLinuxAdditions-x86.run
使用AMD CPU的人,請輸入 sudo sh ./VBoxLinuxAdditions-amd64.run


安裝完之後請重新開機。

接著會發現無法進入X-Window了 ......
好吧! 先使用root帳號進去



接著輸入startx嘗試進入X-Window


結果根本進不去... 沒關係他有提示是xorg.conf設定檔出錯
好吧! 使用vim去修改囉

輸入 vi /etc/X11/xorg.conf


進入編輯器


利用方向鍵往下移,找到 InputDevice "VBoxMouse"的地方,然後按下鍵盤上的 i 鍵進入編輯模式(下方會出現 -- INSERT -- 字樣)



InputDevice "VBoxMouse" 這行字串刪除後,按ESC進入命令模式
然後輸入 :wq 存檔並離開編輯器



接著回到終端機命令列輸入 reboot 重新開機



順利的話應該可以成功進入X-Window了,接著看看解析度設定式窗

YA! 有三種解析度可以設定了,雖然最大只到1024x768 (聽說跟顯示器的頻率設定有關?)
不過已經很開心了

=================
今天偶然發現,可以由以下步驟更改解析度

1. 點選左下"電腦",選擇 "控制中心"



2. 點選"圖形配接卡與顯示器"



3. 輸入root密碼,進入X11設定






4. 恭喜,可以選用其他解析度了


2009年6月24日 星期三

App.config 按右鍵找不到 Edit WCF Configuration

參考 http://dotnetframework.blogspot.com/2008/01/creating-wcf-service-how-to-create.html這篇文章學習WCF時,其中有一個部分是需要新增一App.config。

作者說在app.config上按右鍵,選擇Edit WCF Configuration,結果我按右鍵找不到 Edit WCF Configuration的選項。之後再上方"工具"->"WCF Service Configuration Editor" 按下之後會出現WCF Configuration編輯視窗,此時再到App.config上按右鍵就會出現Edit WCF Configuration的選項。

2009年6月10日 星期三

提升SQLite刪除速度

先前在SQLite下使用BeginTransaction,作INSERT的動作的確有效提升速度。今日使用DELETE時,刪除30筆記錄居然花費到4秒鐘的時間,結果處理的方式是在資料庫連線字串加入Synchronous=OFF。如下:
string strConnection = @"Data source=C:\Datebase.db;Synchronous=OFF;";
SQLiteConnection myConnection = new SQLiteConnection(strConnection);

結果速度馬上由4000ms 提升到 1ms,這真是太~神奇了傑克

2009年5月22日 星期五

將某日期欄位與數值欄位相加後做條件判斷

假設有某一資料表為Schedule裡面有三個欄位分別為
AdName(廣告名稱),ShowDate(播放日期)和ShowDays(播放天數),內容如下

AdName

ShowDate

ShowDays

廣告A

2009-05-10 00:00:00

10

廣告B

2009-05-15 00:00:00

5

廣告C

2009-05-20 00:00:00

3


所以
廣告A 的期限到2009-05-20 00:00:00
廣告B 的期限到2009-05-20 00:00:00
廣告C 的期限到2009-05-23 00:00:00

假設我們要找尋2009-05-19還在播放的廣告就可以使用以下語法

SELECT * FROM Schedule
WHERE DATE_ADD(ShowDate,INTERVAL ShowDays DAY ) > DATE('2009-05-27 00:00:00')
AND DATE(ShowDate) <= DATE('2009-05-27 00:00:00')

2009年5月21日 星期四

在做資料SELECT時,順便將特定值轉換成要顯示的文字

有時候我們會將某些欄位以數字的資料形態來儲存
假設有一Table(Student)含有三個欄位1. Number(long) 2.Name(varchar) 3.Sex(bool)
內容如下:
Number  Name Sex
9701001 Jim  1
9701002 Jack  1
9701003 May  0

我們希望Select出來的DataTable如下:
Number  Name Sex
9701001 Jim  男
9701002 Jack 
9701003 May  

這時可以利用以下的語法來解決
SELECT Number,Name,CASE Sex WHEN '0' THEN '女' WHEN'1' THEN '男' END AS Sex FROM Student