目前分類:程式設計 (24)
- Dec 26 Tue 2006 13:31
歡迎大家參觀
- Dec 15 Fri 2006 22:03
測試CPU速度以及微秒級的延遲時間
出處來自
http://www.cppfans.com/articles/system/cpuspd_usdly.asp
或從以下網址下載
http://stweb.cgu.edu.tw/~m9221001/VC/cpu.mht
- Dec 08 Fri 2006 17:25
Windows SDK 存成Bitmap黑白圖
hSrc = ::GetDC(this->m_hWnd); //Get視窗的Client Area Dc
hMemDC = CreateCompatibleDC(hSrc);
hBitmap = CreateCompatibleBitmap(hMemDC ,Pixel,Pixel);//黑白圖
//hBitmap = CreateCompatibleBitmap(hSrc ,Pixel,Pixel);//彩色圖
在BMP FILE HEADER裏,SIZE配置大小要正確(兩種顏色,可在調色盤自己設定)。
UINT infoSize = sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*2;
hdr.bfOffBits = sizeof(BITMAPFILEHEADER)+ infoSize;
hdr.bfSize = hdr.bfOffBits + dwSize;
另外在調色盤RGBQUAD裏,可以自己設定值(系統預設是黑白),最好自己也設定一下比較保險。
PBITMAPINFO pbmi;
pbmi->bmiColors[0].rgbRed = 0;
pbmi->bmiColors[0].rgbGreen = 0;
pbmi->bmiColors[0].rgbBlue = 0;
pbmi->bmiColors[0].rgbReserved = 0;
pbmi->bmiColors[1].rgbRed = 255;
pbmi->bmiColors[1].rgbGreen = 255;
pbmi->bmiColors[1].rgbBlue = 255;
pbmi->bmiColors[1].rgbReserved = 0;
或
pbmi->bmiColors[0].rgbRed = 0;
pbmi->bmiColors[0].rgbGreen = 0;
pbmi->bmiColors[0].rgbBlue = 0;
pbmi->bmiColors[0].rgbReserved = 0;
pbmi->bmiColors[1].rgbRed = 128;
pbmi->bmiColors[1].rgbGreen = 255;
- Dec 07 Thu 2006 10:33
將BIG5/UTF8轉至UNICODE
wchar_t* wszUnicode=NULL; //Unicode編碼的字元
int iLen=MultiByteToWideChar (CP_ACP, 0,"標楷體", -1, NULL,0) ;
wszUnicode=new wchar_t[iLen+1];
MultiByteToWideChar (CP_ACP, 0,"標楷體", -1, wszUnicode,iLen);
- Dec 06 Wed 2006 17:08
如何利用VC去自由畫字,這樣就不用字庫檔了。
CString WidthString,HeightString;
m_Width.GetWindowText(WidthString);
m_Height.GetWindowText(HeightString);
int Width,Height;
Width = atoi((const char*)WidthString);
Height = atoi((const char*)HeightString);
int Pixel=Height;
HDC hSrc; //screen DC
HDC hMemDC;
HBITMAP hBitmap,hOldBitmap;
HFONT hFont,hOldFont;
hSrc = ::GetDC(this->m_hWnd); //Get視窗的Client Area Dc
hMemDC = CreateCompatibleDC(hSrc);
hBitmap = CreateCompatibleBitmap(hSrc ,Pixel,Pixel);
hOldBitmap = (HBITMAP)SelectObject(hMemDC,hBitmap);
//hFont = CreateFont(-(int)(fabs(250*GetDeviceCaps(hSrc,LOGPIXELSY)/72)/10.0+0.5),0,0,0,500,FALSE,FALSE,FALSE,0,0,0,0,0,"標楷體");
hFont = CreateFont(Pixel,0,0,0,500,FALSE,FALSE,FALSE,0,0,0,0,0,"標楷體");
hOldFont=(HFONT)SelectObject(hMemDC,hFont);
CString WordString;
m_WordEditString.GetWindowText(WordString);
TextOut(hMemDC,0,0,WordString,2);
BitBlt(hSrc,0,0, // destination (x,y)
- Dec 04 Mon 2006 09:08
USB2RS232 Loop Back測試
Setup-Out-In
1.你利用SetOutReport寫資料到裝置之後,Out-Token時裝置將資料讀取進來。接下來PC會送In-Token,然後以目前的軔體程式,裝置不管Out-Token時的資料有沒有處理完,當PC送In-Token,裝置會馬上回Hand-Shake。
2.此時若AP寫一個FOR廻圈連續寫入時(比如二次),然後裝置也會確定收到這兩筆,但是由於PC詢問裝置有沒有資料要傳送的速度太慢,所以當AP己經連送兩次時(HandShake已回),但裝置尚未回覆(因為PC尚未問你有沒有資料要送,你也沒法子送)。此時,你在AP一邊寫入,另一條執行緒讀取時,你有時會發現只收到一次資料。這端看你AP以及軔體要如何搭配使用,可以改軔體,或AP利用Delay機制。
- Dec 01 Fri 2006 11:12
BCB如何限制只允許使用者輸入整數位數不能超過1位,小數位數不能超過2位?
雙擊MastEdit元件之EditMast屬性,開啟其編輯器,將Input Mask欄位設定值為:!9.99;1;_即可。
2.或使用FormatFloat("0.00",float);//小數點下兩位
- Nov 30 Thu 2006 22:58
BCB使用Flash以及URLDownloadToFileA函式
1.您的電腦要先能在IE撥放Flash,安先安裝Macromedia公司的swflash.ocx元件,您可以在Win98的Windows\System\Macromed\Flash中或在Win2000中的Winnt\System32\ Macromed\Flash中找到這個檔,這是ActiveX元件。
#include UrlMon.h
void fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString url = "http://www.hinet.net/images/hinetlogo.jpg";
URLDownloadToFile(NULL,url.cstr(),"c:/hinet_logo.jpg",0,NULL);
}
如果出現這種錯誤訊息
[Linker Error] Unresolved external ‘URLDownloadToFileA’ referenced from C:PROGRAM FILESBORLANDCBUILDER6PROJECTSUNIT1.OBJ
就要add project settings to link Urlmon.lib
Urlmon.lib 在Borland/CBuilder6/Lib/Psdk 下面
- Nov 30 Thu 2006 22:58
BCB使用 HID Library需要先使用Implib程式
1.去下載SETUPAPI.DLL以及hid.dll。
2.使用BCB內建的implib.exe 將implib setupapi.dll setupapi.lib產生BCB的Lib文件(另一個Lib相同處理)。
3.將新的Lib加入Add to Project即可使用。
BCB真是好用但Weak!!
- Nov 30 Thu 2006 22:58
VC MFC簡單但重要的DDX交易機制與HID Interface
m_EditText="Member2Control";
UpdateData(FALSE);
//UpdateData(FALSE)是由MEMBER VAIRABLE TO CONTROL VALUE
SetDlgItemText(IDC_EDIT1, "Control2Member");
UpdateData(TRUE);
//UpdateData(TRUE)是由CONTROL VALUE TO MEMBER VARIABLE
- Nov 30 Thu 2006 22:57
Visual C++使用Skype的ExampleWindows所要設定的參數
- open msgapitest.cpp with Visual C++
- press compile button (CTRL+F7)
- press YES at question
- Build menu / Set Active Configuration... / select Win32 Release, OK
- Project menu / Settings... / "C/C++" tab
- Category: Code Generation
- Use run-time library: Multithreaded
- Choose "Link" tab
- Insert the "RPCRT4.LIB" into Object/library modules
I hope it will be help you !
Bye !
- Nov 30 Thu 2006 22:57
Borland C++ Builder會遇到sizeof的問題
這是因為Compiler最佳化的緣故
因為我們的OS大部份都是32位元的
所以他會用四個Bytes(32bits)為一個單位
如果是一個Byte,為了快數存取,也會當作4Bytes
所以用sizeof時會算錯
因為我們的OS大部份都是32位元的
所以他會用四個Bytes(32bits)為一個單位
如果是一個Byte,為了快數存取,也會當作4Bytes
所以用sizeof時會算錯
- Nov 30 Thu 2006 22:57
X86 開機流程小記
- Nov 30 Thu 2006 22:56
VC找不到MFC的MFC42DLL以及使用RMDIR等函式需Include Which Header檔
- Nov 30 Thu 2006 22:56
VC Compiler Structure Something Problems(Sizeof的問題)
typedef struct _ImageHeader{
short type; /* Magic identifier */
unsigned int size; /* File size in bytes */
unsigned short reserved1;
unsigned short reserved2;
unsigned int offset; /* Offset to image data, bytes */
}ImageHeader;
#pragma pack(pop,1)
//若沒有加#pragma pack(pop,1) 以及 #pragma pack(pop,1)
//fout<<sizeof(ImageHeader)<<endl;//會出現16,實際算才14
CFile f;
f.Open("beagirl.bmp",CFile::modeRead|CFile::typeBinary);
ImageHeader imghder;
f.Read(&imghder,sizeof(imghder));
f.Close();
另一個方法是在VC選項中直接設定
Project=>project setting=>C/C++ Page
在Category選Code Generation在Struct member alignment選擇1Byte
- Nov 30 Thu 2006 22:55
How to build MFC DLL?
- Nov 30 Thu 2006 22:55
VC6安裝STLport
既然使用了STLPort,我就在想如何使用該庫,解壓縮那個包,一打開,嘿,居然還有一個INSTALL文件,仔細研究一番,按照他的說明很不簡單的就裝好了。當然在網上有很多關於如何安裝STLPort的方法,用的最多應該是夢魘的那個方法,即《STL源碼剖析》一書的附錄。這有一個網址供大家參考
http://jjhou.csdn.net/myan-stlport.htm 或 http://stweb.cgu.edu.tw/~m9221001/stelport/stlport.mht
當然移植STLPort的方法還有以下方法:
http://www.vchelp.net/cndevforum/subject_view.asp?
Asd學長方式也不錯用
別人安裝都可以...我目前還沒成功過orz...真不知遇到什麼鬼問題orz
上面內容大家都貼來貼去,都說自己是原創orz....下面是我參考的網址
http://confach.cnblogs.com/archive/2005/03/03/112100.html
後來我將環境變數裏的
include直接修改成
C:\stlport\stlport;C:\Program Files\Microsoft Visual Studio\VC98\atl\include;C:\Program Files\Microsoft Visual Studio\VC98\mfc\include;C:\Program Files\Microsoft Visual Studio\VC98\include
而lib修改成
C:\stlport\lib;C:\Program Files\Microsoft Visual Studio\VC98\mfc\lib;C:\Program Files\Microsoft Visual Studio\VC98\lib
然後打開Dos,進入C:\stlport\src
根據另一份文件,參考自以下網址
http://www.chinaitpower.com/A/2002-12-22/44717.html 或
http://stweb.cgu.edu.tw/~m9221001/stlport/stlportinstall.mht 或
Word格式 http://stweb.cgu.edu.tw/~m9221001/stlport/stlportinstall.doc
copy vc6.mak makefile
nmake -f vc6.mak prepare =>這行很重要!!後來加了才沒有再遇到錯誤
nmake install
- Nov 30 Thu 2006 22:54
VC fatal error LNK1120: 8 unresolved externals
fatal error LNK1120: 8 unresolved externals
record.obj : error LNK2001: unresolved external symbol __imp__waveInClose@4
record.obj : error LNK2001: unresolved external symbol __imp__waveInUnprepareHeader@12
record.obj : error LNK2001: unresolved external symbol __imp__waveInStop@4
record.obj : error LNK2001: unresolved external symbol __imp__waveInStart@4
record.obj : error LNK2001: unresolved external symbol __imp__waveInAddBuffer@12
record.obj : error LNK2001: unresolved external symbol __imp__waveInPrepareHeader@12
record.obj : error LNK2001: unresolved external symbol __imp__waveInOpen@24
record.obj : error LNK2001: unresolved external symbol __imp__waveInGetNumDevs@0
Debug/record.exe : fatal error LNK1120: 8 unresolved externals
Error executing link.exe.
- Nov 30 Thu 2006 22:54
Windows BMP Bitmap File Format
- Nov 30 Thu 2006 22:53
使用c++/Java連接Matlab_Library