上google找一下,解決方法很簡單。
目前是在專案關閉的狀況下,把*.ncb刪除後就恢復正常了。
Showing posts with label Coding IDE. Show all posts
Showing posts with label Coding IDE. Show all posts
[VS神奇事件]pThread->InitInstance()發生crash事件
自從前述的libary link被修改事件被處理完成之後,再度又發生一個非常神奇的事件。
就是原本一個console application在run-time的時候crash了,crash的地方是在pThread->InitInstance()的地方。
在debug模式下發現這邊的pThread其實是一個NULL,所以會當掉也是很正常的。
然而這個pThread是放在AfxWinMain()底下,而AfxWinMain是在winmain.cpp裡面。
問題來了,一個console程式為何會需要用到winmain這個函式呢?
正在苦無解法的情況下,google到了這篇文章(http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/0ba47667-5067-4dc9-b667-87d40d7e2566)。
所以就照他的方法到了link底下的subsystem去檢查設定(Project->Properties->link->subsystem)。
結果,Bingo!!
M$的產品總是充滿驚喜阿,subsystem的設定竟然是winodws阿。
一整個無言,為何好端端的console程式會變成windows程式呢?
更何況3個月前他還是console阿,所以最後就把subsystem的設定調回console後,程式又可以正常運行了。
所以,M$讓我們的生活總是充滿驚喜阿!!!XD
就是原本一個console application在run-time的時候crash了,crash的地方是在pThread->InitInstance()的地方。
在debug模式下發現這邊的pThread其實是一個NULL,所以會當掉也是很正常的。
然而這個pThread是放在AfxWinMain()底下,而AfxWinMain是在winmain.cpp裡面。
問題來了,一個console程式為何會需要用到winmain這個函式呢?
正在苦無解法的情況下,google到了這篇文章(http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/0ba47667-5067-4dc9-b667-87d40d7e2566)。
所以就照他的方法到了link底下的subsystem去檢查設定(Project->Properties->link->subsystem)。
結果,Bingo!!
M$的產品總是充滿驚喜阿,subsystem的設定竟然是winodws阿。
一整個無言,為何好端端的console程式會變成windows程式呢?
更何況3個月前他還是console阿,所以最後就把subsystem的設定調回console後,程式又可以正常運行了。
所以,M$讓我們的生活總是充滿驚喜阿!!!XD
[VS神奇事件]Visual Studio無法開啟Find and Replace window-1
這個事件後來還是有發生,不過這次有經驗了,所以也就沒有在做solution的reset的動作XD
不過這次倒是有發現原因了。
主要Find and Replace window會跳的原因是因為只要這個視窗擋到被修改或是被搜尋的文字的時候,他會自動跳到不會遮住的地方,至於怎麼跳,那這邊要問M$,目前看不出他的patten。
而會跳到工作列下面是因為當初在做取代的時候,是用select的方式,所以等於整個被修改的文字都會被Find and Replace window給遮住了,而Find and Replace window為了不遮住那些被修改的文字,所以就跳到不會遮到的地方,也就是Text Editor外面。
不過後來在做測試的時候,Find and Replace window就沒有跳到工作列下面去了,所以這問題是要不小心使用的時候才會發生嗎?XD
PS.以上發生原因是經過數次實驗後所做的假設,不過解決方法倒是可行。至於實際原因就要問M$了XD
不過這次倒是有發現原因了。
主要Find and Replace window會跳的原因是因為只要這個視窗擋到被修改或是被搜尋的文字的時候,他會自動跳到不會遮住的地方,至於怎麼跳,那這邊要問M$,目前看不出他的patten。
而會跳到工作列下面是因為當初在做取代的時候,是用select的方式,所以等於整個被修改的文字都會被Find and Replace window給遮住了,而Find and Replace window為了不遮住那些被修改的文字,所以就跳到不會遮到的地方,也就是Text Editor外面。
不過後來在做測試的時候,Find and Replace window就沒有跳到工作列下面去了,所以這問題是要不小心使用的時候才會發生嗎?XD
PS.以上發生原因是經過數次實驗後所做的假設,不過解決方法倒是可行。至於實際原因就要問M$了XD
[VS神奇事件]LNK2019
最近把原本在windows上運作的程式porting到Linux上,在porting的過程中也沒有去改VS的專案設定。
在porting完成後想說在Windows上build看看原本的程式。結果卻在某個中間dll專案發生了LNK2019的問題,在整個檢查過程中發現所有原本要做dllexport的class全部都變成dllimport了,這時還以為是因為pre-processor key的部份沒有做設定,還特地把專案一個一個測試。
結果,問題並不是出在那邊,雖然VS的顯示上本來就有問題,但是那還不致於影響compiler的編譯。最後因為上網去找有關LNK2019的相關文獻發現,這問題在dll載入的動作中,是代表靜態連結有問題。
所以後來就去檢查專案的lib link,後來發現,果真,原本設定的那些lib link全部都不見了。
後來把原本該有的lib link都加上去後,complier就可以正常編譯了。
話說,這是VS的bug嗎?竟然把之前設定的資料都弄不見了?XD
就是因為相同的舊專案可以build,所以就沒懷疑到這邊。結果花了3天的時間在抓這問題,一整個殘念阿 -.-
在porting完成後想說在Windows上build看看原本的程式。結果卻在某個中間dll專案發生了LNK2019的問題,在整個檢查過程中發現所有原本要做dllexport的class全部都變成dllimport了,這時還以為是因為pre-processor key的部份沒有做設定,還特地把專案一個一個測試。
結果,問題並不是出在那邊,雖然VS的顯示上本來就有問題,但是那還不致於影響compiler的編譯。最後因為上網去找有關LNK2019的相關文獻發現,這問題在dll載入的動作中,是代表靜態連結有問題。
所以後來就去檢查專案的lib link,後來發現,果真,原本設定的那些lib link全部都不見了。
後來把原本該有的lib link都加上去後,complier就可以正常編譯了。
話說,這是VS的bug嗎?竟然把之前設定的資料都弄不見了?XD
就是因為相同的舊專案可以build,所以就沒懷疑到這邊。結果花了3天的時間在抓這問題,一整個殘念阿 -.-
[VS神奇事件]Visual Studio無法開啟Find and Replace window
最近因為需要動到大量(20個以上)的macro定義的變更,所以常用Replace的功能來把macro define以及 TEXT macro取代掉。
不過取代個幾次後,就會發生Find and Replace window無法叫出的狀況。
就是說不論是去介面上按Find and Replace window的按鈕或是用Hot key去呼叫,就是看不到Find and Replace window的蹤跡。
原本以為是因為設定檔壞掉了,所以就把設定檔做reset的動作,然後再把一些設定還原。
後來跟同事討論,才發覺不是window不見了,而是Visual Studio把window的座標改了。
我的狀況是window跑到工作列的後面了,所以才看不到。
這時候只要把工作列隱藏起來,就可以看到Find and Replace window的caption了。
再把Find and Replace window拉回可視範圍內就ok嚕。
所以如果有要把文字取代成空字串的時候,還是要多注意嚕。XD
不過據說,文字內含空白好像也會有同樣的問題,不過我沒遇到。
不過取代個幾次後,就會發生Find and Replace window無法叫出的狀況。
就是說不論是去介面上按Find and Replace window的按鈕或是用Hot key去呼叫,就是看不到Find and Replace window的蹤跡。
原本以為是因為設定檔壞掉了,所以就把設定檔做reset的動作,然後再把一些設定還原。
後來跟同事討論,才發覺不是window不見了,而是Visual Studio把window的座標改了。
我的狀況是window跑到工作列的後面了,所以才看不到。
這時候只要把工作列隱藏起來,就可以看到Find and Replace window的caption了。
再把Find and Replace window拉回可視範圍內就ok嚕。
所以如果有要把文字取代成空字串的時候,還是要多注意嚕。XD
不過據說,文字內含空白好像也會有同樣的問題,不過我沒遇到。
Subscribe to:
Posts (Atom)
Build docker image from multiple build contexts
Build docker image from multiple build contexts ...
-
參考資料: Input Input Manager 測試手把 :PS Analog gamepad Script語言:C# Unity 版本:3.4 Unity提供了3種輸入裝置可以使用,鍵盤、滑鼠、以及遊戲手把。 ...
-
寫法很簡單,就像下列寫法: if ( *szStr ) { .... } 因為*szStr == szStr[0],且char[]是以NULL-Terminate來判定字串是否結束,所以只要判定陣列的第一個值是不是為零,就可知道是否為空字串。 如需檢查是否為空字...