一開始是發現只要是含有虛擬指標的物件使用到了inline function時,
都有可能少算8bytes/64bits的位移,為什麼呢?
唉,這樣我的計算程式又qq了,
舉例來說:
vtk有個vtkIdList, sizeof(vtkIdList) = 56
可以儲存一個整數集合,vtkIdList 有三個成員,
定義 typedef int vtkIdType; , sizeof(int) = 4
vtkIdType NumberOfIds;
vtkIdType Size;
公告版位
目前分類:程式問題解決 (118)
- Aug 18 Thu 2011 03:09
vc2008 的 c++ x64 runtime error
- Aug 04 Thu 2011 09:00
暴力真的是金手指
金手指用太多,會當機的,
不過用出來時真的很有用,
非到不可以不要亂用,
不然就會像抗生素加放羊的孩子,
會沒有效。
- Jul 31 Sun 2011 00:01
pale moon 就像吃了禁藥一樣快
而且所有外掛、插件、plugin一樣都能用,
記憶體使用量還是原本的30%,原來吃2.1g現在吃650mb,
速度沒有什麼東西可以實測,
原本我會怪說是我開分頁開太多,
但我已經買了i7 + 16gb ram了,
這樣還lag,你說 firefox是不是要自己去死一死,
看到那個沒是就衝爆一個核心的使用量 12~13%,
我的cpu是8 threads的,100/8=12.5,
12~13%根本就是在for無限迴圈嘛~~~
現在看到palemoon 只花了 0~1%,
- Jul 30 Sat 2011 23:11
喔煩耶,chrome又爆掉了
因為安裝版的一直爆掉,
免安裝版的外掛裝不上去,
終於發現一個解法了,
把免安裝版的google chrome複製到c:\下,
就可以安裝外掛,
再複製回去即可。
- Jul 23 Sat 2011 12:18
chrome vs. firefox 效能篇
chrome
使用了多process的技術
有什麼好處?
自己有自己的資源,不會因為這個process當掉影響到其它的process,
如果是 thread 的話,自己當掉整個process也當掉,
因為os自己會為多個process省掉了同步的問題,因為每個分頁可以不同步
firefox
所有的分頁共用同一個process & thread
只要有一個分頁或小設定當掉,全部都當掉,只能重開
- Jul 11 Mon 2011 00:10
又是unicode bug煩耶
setlocale(LC_ALL, "cht");
wcstombs(ansi, unicode, INT_MAX);
如果沒有先設定locale就用wcstombs遇到非英文就爆了。
mbstowcs()更慘不管怎樣都爆,
請用MultiByteToWideChar(CP_ACP, 0, ansi, strlen(ansi), unicode, 2048 );
- Jun 13 Mon 2011 10:15
windows 7 安裝軟體超慢問題解決!
原因出在系統還原點,
不過如果設定正確的話是不會有什麼問題的,
不過在我更新到sp1後,不知道為什麼,
還原點的容量被設成了0,但還原的功能還是開著,
導致建立還原點時沒有空間,就當在那邊了,
話說我的jdk安裝了1個小時,有沒有那麼扯= =
解決方法就是關掉還原功能,再打開設定還原點儲存大小不為0就可以了。
- Jun 01 Wed 2011 21:28
新聞,64位元的c/c++程式注意事項!
http://www.codeproject.com/KB/cpp/Examples-64-bit-Errors.aspx
簡單來說:
跟 stl 容器互動請用 size_t
小心 指標的指標轉型後內容大小不一樣
最有趣的就是這張圖了。
- May 31 Tue 2011 05:43
其實我一直有在注意各種c++ library的更新
http://www.ultimatepp.org
最近這個 gui 的 library 感覺愈做愈好了,
我會喜歡的原因主要是因為,他的程式庫很小,
不過有時對各種字元編碼的支援還不夠完善,
編譯他的範例程式時,少部份會出現ERROR都是因為這個問題,
之前也是因為這個問題才沒用它的。
而且我很喜歡他的一個範例程式叫EyeCare,
功能就是每N分鐘叫你起來休息M分鐘,對我來說實在很不錯^^
心情不好時來加個音效的小功能好了。
不過它到處加 using namespace Upp; 實在讓人高興不起來。
- Apr 08 Fri 2011 19:11
對了關於 windows pipe 有時鎖住的問題
如果你的程式跟其它程式用pipe溝通時,會有鎖住的問題的話,
導致別人需要用 fflush(stdin); 或 std::cin.sync(); 來清除緩衝區的話,
很有可能是你輸入了非螢幕可顯示的字元,導致對方的緩衝區被塞住。
- Apr 08 Fri 2011 00:09
static 的函數對 非static 的全域物件參考恐造成程式被鎖定
範例:
InOutCell g_inout;
std::stringstream &g_outss = g_inout.m_outstream;
std::stringstream &g_inss = g_inout.m_instream;
static int LuaGetNumber(lua_State* luaState)
{
double n;
g_outss >> n;
lua_pushnumber(luaState, n);
return 1;
- Mar 28 Mon 2011 16:36
add wchar_t version for stlport 5.2.1's fstream::open
結果不到5分鐘就加好了...
測試碼:
#define _STLP_USE_STATIC_LIB
#include <iostream>
#include <fstream>
#include <string>
void SaveDatFile( const std::wstring path )
{
std::ofstream fIn;
- Jan 20 Thu 2011 08:09
自動new的物件
有寫過vtk的人應該都用過vtkSmartPointer
而它初始化的方法就像
//member variable
vtkSmartPointer<vtkImageData> m_idata;
//on member funtion
m_idata = vtkSmartPointer<vtkImageData>::New();
m_idata->Initialize();
這樣又清楚又長,因為我為了縮短給他作了一個巨集:
- Dec 26 Sun 2010 03:45
小心STL在<numeric>的演算法
像是accumulate, inner_product 這類數值演算法,都有個init_value,
一般我們會丟0,但如果你計算的是double之類有小數點的東西,就會得到不預期的結果... ...
請小心使用0.0或0.0f當初值。
- Dec 21 Tue 2010 03:57
使用C++靜態多型實作各種Timer
code : http://damody.googlecode.com/files/TTimer.7z
感覺可能有小錯,請多指教。
template<class TIMER_IMP>
class TTimer
{
public:
enum TimerState
{
RUNNING,
- Dec 21 Tue 2010 01:49
win32使用pthread注意事項
因為別人不會有pthread,
動態連結不需要什麼注意,只要有dll就對了
, 靜態連結的話要注意,編lib時要
#define PTW32_STATIC_LIB
使用這個靜態程式庫時也要
#define PTW32_STATIC_LIB
然後使用pthread函數前要先call
pthread_win32_process_attach_np();
離開時
pthread_win32_process_detach_np();
- Dec 09 Thu 2010 23:34
com0com win7 x64 創建com port不能
http://efreedom.com/Question/1-1388871/Get-List-Available-Serial-Ports-Win32
根據這邊的程式來測的。
http://com0com.sourceforge.net/
上google聽這位仁兄說
http://florent.clairambault.fr/tag/com0com
需要小patch?
http://www.ngohq.com/home.php?page=Files&go=cat&dwn_cat_id=34&go=giveme&dwn_id=826
真的嗎?
試了沒用。
- Dec 03 Fri 2010 02:33
手拿杯
伸手拿杯
手伸起來往前,放下,拿杯,拿回來。
手昇起30公分,向前90公分,手打開90度角,手下降20公分,手合起到60度角,手昇起20公分,手向後90公分,手向下30公分。
- Nov 22 Mon 2010 08:24
關於porting
我說的porting是把一套軟體在有或沒有source code的情況下移稙到另一個環境,
可能是
軟體版本
Window XP NoSP,SP1~3
Window Vista NoSP,SP1
visual studio 2008 sp1
visual studio 2005 sp1
作業系統
win<->linux<->BSD<->MAC
硬體
- Nov 04 Thu 2010 14:54
如何在Windows7開GOM player加速不變聲(音調)
之前都是開xp的vm來看,現在終於不用了= =
先去載這個http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx
Autoruns
然後先打開gom隨便開一個加速會錯的影片
右鍵點檔案資訊
可以看到你的編碼器
現在打開Autoruns,點