世界各国数钞票的方式
http://www.youtube.com/watch?v=5L8mP19hPSU&NR=1
2011年6月23日 星期四
次世代網頁編輯器—藍獅鷲 BlueGriffon 降臨
次世代網頁編輯器—藍獅鷲 BlueGriffon 降臨
http://mozlinks-zh.blogspot.com/2011/06/bluegriffon-11.html
http://mozlinks-zh.blogspot.com/2011/06/bluegriffon-11.html
2011年6月21日 星期二
Scheme/Activate Thinking in Scheme 啟動程式設計思考力
Scheme/Activate Thinking in Scheme
啟動程式設計思考力
http://wiki.yuntech.edu.tw/Scheme/Activate_Thinking_in_Scheme
啟動程式設計思考力
http://wiki.yuntech.edu.tw/Scheme/Activate_Thinking_in_Scheme
2011年6月20日 星期一
[問題]成員函數的指標傳入全域函數
有一個我想得到的值
這個值從一個全域函數產生
我只能傳函數指標進全域函數,才能得到這個值
當我想要要物件化時,我遇到了麻煩
======================================================
//GlobalFunc( bool(*)(int*) ); //這是別人寫好的,我不能改變
/**A.hpp*/
class A
{
friend GlobalFunc( bool(*)(int*) );
public:
A();
bool foo( int* someingYouWant )
{
a = someingYouWant;
return ( a == NULL );
}
int * a;
}
======================================================
/**A.cpp*/
A::A()
{
a = NULL;
GlobalFunc( &foo );
//GlobalFunc( *foo );
//GlobalFunc( foo );
}
======================================================
error:
ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.
苦思許久,想到了下面這個方法
======================================================
//GlobalFunc( bool(*)(int*) ); //這是別人寫好的,我不能改變
/**A.hpp*/
class A
{
public:
A();
int * a;
}
======================================================
/**A.cpp*/
namespace
{
int * a_ = NULL;
bool foo( int* someingYouWant )
{
a_ = someingYouWant;
return ( a_ == NULL );
}
}
A::A()
{
a = NULL;
GlobalFunc( &foo );
//GlobalFunc( *foo );
//GlobalFunc( foo );
a = a_;
}
======================================================
但這方法讓我感覺不像物件導向
是否有其他方法解決這個問題?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我又想到了一種變形
======================================================
//GlobalFunc( bool(*)(int*) ); //這是別人寫好的,我不能改變
/**A.hpp*/
class A
{
public:
A();
int * a;
static bool foo( int* someingYouWant )
{
a_ = someingYouWant;
return ( a_ == NULL );
}
private:
static int * a_;
}
======================================================
/**A.cpp*/
A::A()
{
a = NULL;
GlobalFunc( &foo );
//GlobalFunc( *foo );
//GlobalFunc( foo );
a = a_;
}
======================================================
這樣比較像物件導向:D
有沒有更好的方法呢?
這個值從一個全域函數產生
我只能傳函數指標進全域函數,才能得到這個值
當我想要要物件化時,我遇到了麻煩
======================================================
//GlobalFunc( bool(*)(int*) ); //這是別人寫好的,我不能改變
/**A.hpp*/
class A
{
friend GlobalFunc( bool(*)(int*) );
public:
A();
bool foo( int* someingYouWant )
{
a = someingYouWant;
return ( a == NULL );
}
int * a;
}
======================================================
/**A.cpp*/
A::A()
{
a = NULL;
GlobalFunc( &foo );
//GlobalFunc( *foo );
//GlobalFunc( foo );
}
======================================================
error:
ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.
苦思許久,想到了下面這個方法
======================================================
//GlobalFunc( bool(*)(int*) ); //這是別人寫好的,我不能改變
/**A.hpp*/
class A
{
public:
A();
int * a;
}
======================================================
/**A.cpp*/
namespace
{
int * a_ = NULL;
bool foo( int* someingYouWant )
{
a_ = someingYouWant;
return ( a_ == NULL );
}
}
A::A()
{
a = NULL;
GlobalFunc( &foo );
//GlobalFunc( *foo );
//GlobalFunc( foo );
a = a_;
}
======================================================
但這方法讓我感覺不像物件導向
是否有其他方法解決這個問題?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我又想到了一種變形
======================================================
//GlobalFunc( bool(*)(int*) ); //這是別人寫好的,我不能改變
/**A.hpp*/
class A
{
public:
A();
int * a;
static bool foo( int* someingYouWant )
{
a_ = someingYouWant;
return ( a_ == NULL );
}
private:
static int * a_;
}
======================================================
/**A.cpp*/
A::A()
{
a = NULL;
GlobalFunc( &foo );
//GlobalFunc( *foo );
//GlobalFunc( foo );
a = a_;
}
======================================================
這樣比較像物件導向:D
有沒有更好的方法呢?
2011年6月18日 星期六
Hide console window 隱藏控制台視窗
隱藏console視窗
會閃一下,沒辦法一開始就隱藏
#include <windows.h>
void HideWindow(void)
{
const int BUFSIZE = 1024;
HWND m_hWnd;
char *pszTitle;
pszTitle = (char*)calloc( BUFSIZE, sizeof(char) );
GetConsoleTitle( pszTitle, BUFSIZE );
m_hWnd = FindWindow( "ConsoleWindowClass", pszTitle );
ShowWindow( m_hWnd, SW_HIDE );
}
int main()
{
HideWindow();
/* Someing you want to do */
return 0;
}
會閃一下,沒辦法一開始就隱藏
#include <windows.h>
void HideWindow(void)
{
const int BUFSIZE = 1024;
HWND m_hWnd;
char *pszTitle;
pszTitle = (char*)calloc( BUFSIZE, sizeof(char) );
GetConsoleTitle( pszTitle, BUFSIZE );
m_hWnd = FindWindow( "ConsoleWindowClass", pszTitle );
ShowWindow( m_hWnd, SW_HIDE );
}
int main()
{
HideWindow();
/* Someing you want to do */
return 0;
}
Visual C++ MFC視窗模式下呼叫gnuplot
研究這的目的,是要在Visual C++視窗模式下呼叫gnuplot
也順便解決了呼叫新版gnuplot會出現的問題:
Timeout: gnuplot is not ready
原本只會用C的popen()來呼叫gnuplot,或用Visual C++的_popen()。
這種方法在console(控制台,黑黑的視窗)模式下是可行的。
但在VC++的視窗模式下,是無法使用_popen()的。
因為popen()是Unix系統的pipe function,Windows系統雖有模擬,但使用上有些限制( ex. 視窗程式不能用 )
在Windows下建pipe
在Windows下建pipe
compiler是mingw32-gcc,可用popen。
compiler是VC++,console(控制台,黑黑的視窗)模式下,要用_popen。
但視窗模式下無效,也不會顯示錯誤訊息。
因為popen是Unix的東西,Windows雖有模擬,但使用上有些限制( ex. 視窗程式不能用 )。
Windows有提供它的 Pipe Functions:
Pipe Functions
http://msdn.microsoft.com/en-us/library/aa365781%28v=VS.85%29.aspx
上網一查,發現有人跟我遇到一樣的問題,而且他跟我的目的一樣,都是要呼叫gnuplot
以下只摘錄回答
===================================================================
http://www.programmer-club.com.tw/ShowSameTitleN/c/36114.html
作者 : sunny_gong(simula)
如果是使用 VC++ 的 runtime library,可以參考說明文件。C runtime library中與作業系統有關的function call,在console模式下應該都沒啥問題,但是在視窗模式中可能就有相容性的問題。其原因就是Windows並不是Unix-like系統,而C runtime library的作業系統服務呼叫就是Unix的系統呼叫,Windows是另外設計出子系統來模擬這些Unix系統呼叫的,例如console子系統與POSIX子系統。所以在Windows上面使用C runtime library的作業系統服務呼叫,都得閱讀一下說明文件,看看有沒什麼差異或限制,或者乾脆用Windows本身的系統呼叫。我只知道個大概,Inside Windows NT之類的書籍有更詳細的說明。
[MSDN Library\Run-Time Library Reference\_popen]
if used in a Windows program, the _popen function returns an invalid file pointer that causes the program to stop responding indefinitely. _popen works properly in a console application. To create a Windows application that redirects input and output, see Creating a Child Process with Redirected Input and Output in the Platform SDK.
Windows NT保護子系統:
http://lee-1.com/hlchou/WindowsNTSubSystem.htm
=========================================================================
compiler是mingw32-gcc,可用popen。
compiler是VC++,console(控制台,黑黑的視窗)模式下,要用_popen。
但視窗模式下無效,也不會顯示錯誤訊息。
因為popen是Unix的東西,Windows雖有模擬,但使用上有些限制( ex. 視窗程式不能用 )。
Windows有提供它的 Pipe Functions:
Pipe Functions
http://msdn.microsoft.com/en-us/library/aa365781%28v=VS.85%29.aspx
上網一查,發現有人跟我遇到一樣的問題,而且他跟我的目的一樣,都是要呼叫gnuplot
以下只摘錄回答
===================================================================
http://www.programmer-club.com.tw/ShowSameTitleN/c/36114.html
作者 : sunny_gong(simula)
如果是使用 VC++ 的 runtime library,可以參考說明文件。C runtime library中與作業系統有關的function call,在console模式下應該都沒啥問題,但是在視窗模式中可能就有相容性的問題。其原因就是Windows並不是Unix-like系統,而C runtime library的作業系統服務呼叫就是Unix的系統呼叫,Windows是另外設計出子系統來模擬這些Unix系統呼叫的,例如console子系統與POSIX子系統。所以在Windows上面使用C runtime library的作業系統服務呼叫,都得閱讀一下說明文件,看看有沒什麼差異或限制,或者乾脆用Windows本身的系統呼叫。我只知道個大概,Inside Windows NT之類的書籍有更詳細的說明。
[MSDN Library\Run-Time Library Reference\_popen]
if used in a Windows program, the _popen function returns an invalid file pointer that causes the program to stop responding indefinitely. _popen works properly in a console application. To create a Windows application that redirects input and output, see Creating a Child Process with Redirected Input and Output in the Platform SDK.
Windows NT保護子系統:
http://lee-1.com/hlchou/WindowsNTSubSystem.htm
=========================================================================
2011年6月17日 星期五
Gnuplot 常用指令整理
(自行搜尋)(版本較舊)
GNUPLOT使用手冊.pdf
官網的說明文件:
http://www.gnuplot.info/documentation.html
官網的範例:
http://www.gnuplot.info/demo/
==========================================================
####################################
#資料 數據 繪圖 Plotting Data File
####################################
plot "C:\\filedir\\data.txt" using 1:3 with lines #從絕對路徑讀取data做圖
plot "C:/filedir/data.txt" using 1:3 with lines #從絕對路徑讀取data做圖
#using 1:3 #用data中的第 1 column 當x座標,第 3 column 當y座標
#台灣 column:行 row:列
#中國與台灣相反
#若data.txt與wgnuplot.exe同一資料夾
plot "data.txt" using 1:3 with lines #從相對路徑讀取data做圖
##################
#繪圖方式 Plotting Style
##################
#with lines #用連線做圖
#with points #點(自動選擇: 十字點 X點 米點...種類繁多)
#with dots #細點
#with linespoints #同時具備lines points
##################
#數學繪圖
##################
plot sin(x) with lines, cos(x) with dots #同時畫兩種曲線,須用逗號分隔
plot sin(x) with lines title "我是sin(x)", cos(x) with points title "我是cos(x)"
#plot f(x) title "在圖例顯示的說明" #若沒設定title,預設為函數名稱或data檔名或data絕對路徑
plot 1 with lines notitle #不將函數名稱 1 顯示在圖例上,可當輔助線 #此範例會畫出y=1的直線
plot 2,1 #同時畫出y=2,y=1
==========================================================
##################
#繪圖方式
##################
set sample 500 #每條線用500點表示
==========================================================
################################
#座標軸格式 Axis
################################
set xrange [0:60] #x軸範圍[最小值,最大值]
set yrange [0:60] #y軸範圍[最小值,最大值]
set yrange [0:*] #自動設定上限
set yrange [*:*] #自動設定上下限
set xtics 10 #設定x軸刻度增加量(刻度間距)
(un)set xtics #(不)要畫 x 軸上的刻度
(un)set ytics #(不)要畫 y 軸上的刻度
set logscale y 10 #設定y軸為對數刻度(底數為10)
unset logscale x #取消設定x軸為對數刻度
unset logscale xy #取消設定x軸與y軸為對數刻度
set xtics rotate by -45 #X軸數字轉45degree
==============================================
(un)set grid #(不)要在背景上畫方格紙(也就是網格)
(un)set border #(不)要畫外框
===========================================================
################################
#圖例
################################
(un)set key #(不)要顯示圖例 (因為一張圖上可以有好幾個函數)
set key outside #把圖例放在圖表外
set keytitle "我是圖例標題" #顯示圖例標題
unset keytitle #不顯示圖例標題
===========================
################################
#標題 Title
################################
set title "Wave" #圖表標題
set xlabel "time(s)" #X軸標題
set ylabel "Electric Field" #Y軸標題
unset title #不顯示圖表標題
unset xlabel #不顯示X軸標題
unset ylabel #不顯示Y軸標題
=============================================================
set terminal svg size 700,400\
font "Arial,8"\
linewidth 0.5
set output 'filename.svg'
plot "Wave.binary" with lines
set output
set terminal windows
===================================================
plot sin(x) with filledcurve x1 linecolor rgb "forest-green" title "圖例顯示的說明"
plot sin(x) style fill transparent solid 0.5 noborder with filledcurve x1 linecolor rgb "forest-green" title "圖例顯示的說明"
style fill transparent solid 0.5 noborder
===================================================
plot f(x) with filledcurve x1 #向下填滿
plot f(x) with filledcurve x2 #向上填滿
plot f(x) with filledcurve y1=0 #向y=0填滿
================================================
================================================
Excel 圖表精靈
座標軸格式
數值X軸刻度
自動設定
刻度
最小值
最大值
刻度間距
數值Y軸交叉於
對數刻度
數值次序反轉
數值Y軸置於最大值
===============================================
GNUPLOT使用手冊.pdf
官網的說明文件:
http://www.gnuplot.info/documentation.html
官網的範例:
http://www.gnuplot.info/demo/
==========================================================
####################################
#資料 數據 繪圖 Plotting Data File
####################################
plot "C:\\filedir\\data.txt" using 1:3 with lines #從絕對路徑讀取data做圖
plot "C:/filedir/data.txt" using 1:3 with lines #從絕對路徑讀取data做圖
#using 1:3 #用data中的第 1 column 當x座標,第 3 column 當y座標
#台灣 column:行 row:列
#中國與台灣相反
#若data.txt與wgnuplot.exe同一資料夾
plot "data.txt" using 1:3 with lines #從相對路徑讀取data做圖
##################
#繪圖方式 Plotting Style
##################
#with lines #用連線做圖
#with points #點(自動選擇: 十字點 X點 米點...種類繁多)
#with dots #細點
#with linespoints #同時具備lines points
##################
#數學繪圖
##################
plot sin(x) with lines, cos(x) with dots #同時畫兩種曲線,須用逗號分隔
plot sin(x) with lines title "我是sin(x)", cos(x) with points title "我是cos(x)"
#plot f(x) title "在圖例顯示的說明" #若沒設定title,預設為函數名稱或data檔名或data絕對路徑
plot 1 with lines notitle #不將函數名稱 1 顯示在圖例上,可當輔助線 #此範例會畫出y=1的直線
plot 2,1 #同時畫出y=2,y=1
==========================================================
##################
#繪圖方式
##################
set sample 500 #每條線用500點表示
==========================================================
################################
#座標軸格式 Axis
################################
set xrange [0:60] #x軸範圍[最小值,最大值]
set yrange [0:60] #y軸範圍[最小值,最大值]
set yrange [0:*] #自動設定上限
set yrange [*:*] #自動設定上下限
set xtics 10 #設定x軸刻度增加量(刻度間距)
(un)set xtics #(不)要畫 x 軸上的刻度
(un)set ytics #(不)要畫 y 軸上的刻度
set logscale y 10 #設定y軸為對數刻度(底數為10)
unset logscale x #取消設定x軸為對數刻度
unset logscale xy #取消設定x軸與y軸為對數刻度
set xtics rotate by -45 #X軸數字轉45degree
==============================================
(un)set grid #(不)要在背景上畫方格紙(也就是網格)
(un)set border #(不)要畫外框
===========================================================
################################
#圖例
################################
(un)set key #(不)要顯示圖例 (因為一張圖上可以有好幾個函數)
set key outside #把圖例放在圖表外
set keytitle "我是圖例標題" #顯示圖例標題
unset keytitle #不顯示圖例標題
===========================
################################
#標題 Title
################################
set title "Wave" #圖表標題
set xlabel "time(s)" #X軸標題
set ylabel "Electric Field" #Y軸標題
unset title #不顯示圖表標題
unset xlabel #不顯示X軸標題
unset ylabel #不顯示Y軸標題
=============================================================
set terminal svg size 700,400\
font "Arial,8"\
linewidth 0.5
set output 'filename.svg'
plot "Wave.binary" with lines
set output
set terminal windows
===================================================
plot sin(x) with filledcurve x1 linecolor rgb "forest-green" title "圖例顯示的說明"
plot sin(x) style fill transparent solid 0.5 noborder with filledcurve x1 linecolor rgb "forest-green" title "圖例顯示的說明"
style fill transparent solid 0.5 noborder
===================================================
plot f(x) with filledcurve x1 #向下填滿
plot f(x) with filledcurve x2 #向上填滿
plot f(x) with filledcurve y1=0 #向y=0填滿
================================================
================================================
Excel 圖表精靈
座標軸格式
數值X軸刻度
自動設定
刻度
最小值
最大值
刻度間距
數值Y軸交叉於
對數刻度
數值次序反轉
數值Y軸置於最大值
===============================================
2011年6月16日 星期四
爱丽丝的发丝──《爱丽丝惊魂记:疯狂再临》制作点滴
爱丽丝的发丝──《爱丽丝惊魂记:疯狂再临》制作点滴
http://www.cnblogs.com/miloyip/archive/2011/06/14/alice_madness_returns_hair.html
http://www.cnblogs.com/miloyip/archive/2011/06/14/alice_madness_returns_hair.html
2011年6月9日 星期四
2011年6月8日 星期三
監察院:行政院、教育部,是偷走你我血汗錢的元凶
監察院:行政院、教育部,是偷走你我血汗錢的元凶
http://tw.news.yahoo.com/article/url/d/a/110608/116/2sy77.html
http://tw.news.yahoo.com/article/url/d/a/110608/116/2sy77.html
2011年6月4日 星期六
有宣告解構式但未定義
如果你有宣告解構是但未定義的話
正常情況下,編譯器應顯示:
c++ -Wall -c main.cpp
c++ -Wall -c Base.cpp
c++ -Wall -c Derived.cpp
g++ -Wall main.o Base.o Derived.o -o a.out
main.o(.text+0x93): In function `main':
: undefined reference to `Derived::~Derived()'
Derived.o(.text+0x39): In function `Derived::Derived(std::string const&)':
: undefined reference to `vtable for Derived'
Derived.o(.text+0x69): In function `Derived::Derived(std::string const&)':
: undefined reference to `vtable for Derived'
*** Error code 1
但我遇到的狀況是:
c++ -c Student.cpp
c++ -c StudentOfEnglish.cpp
g++ main.o Student.o StudentOfEnglish.o -o a.out
StudentOfEnglish.o(.text+0x57): In function `StudentOfEnglish::StudentOfEnglish(std::string const&, std::string const&, std::string const&, std::vector<double, std::allocator<double> > const&)':
: undefined reference to `vtable for StudentOfEnglish'
StudentOfEnglish.o(.text+0xb7): In function `StudentOfEnglish::StudentOfEnglish(std::string const&, std::string const&, std::string const&, std::vector<double, std::allocator<double> > const&)':
: undefined reference to `vtable for StudentOfEnglish'
*** Error code 1
害我一直找建構式哪裡錯。
正常情況下,編譯器應顯示:
c++ -Wall -c main.cpp
c++ -Wall -c Base.cpp
c++ -Wall -c Derived.cpp
g++ -Wall main.o Base.o Derived.o -o a.out
main.o(.text+0x93): In function `main':
: undefined reference to `Derived::~Derived()'
Derived.o(.text+0x39): In function `Derived::Derived(std::string const&)':
: undefined reference to `vtable for Derived'
Derived.o(.text+0x69): In function `Derived::Derived(std::string const&)':
: undefined reference to `vtable for Derived'
*** Error code 1
但我遇到的狀況是:
c++ -c Student.cpp
c++ -c StudentOfEnglish.cpp
g++ main.o Student.o StudentOfEnglish.o -o a.out
StudentOfEnglish.o(.text+0x57): In function `StudentOfEnglish::StudentOfEnglish(std::string const&, std::string const&, std::string const&, std::vector<double, std::allocator<double> > const&)':
: undefined reference to `vtable for StudentOfEnglish'
StudentOfEnglish.o(.text+0xb7): In function `StudentOfEnglish::StudentOfEnglish(std::string const&, std::string const&, std::string const&, std::vector<double, std::allocator<double> > const&)':
: undefined reference to `vtable for StudentOfEnglish'
*** Error code 1
害我一直找建構式哪裡錯。
2011年6月2日 星期四
2011年6月1日 星期三
訂閱:
文章 (Atom)