2011年12月6日 星期二

Skype 錄音Bug心得

1. 檢查自製Dll是否正在被使用,來判斷目前使用到的Dll為可能有Bug導致程式Crash掉

2.進入Dll的程式除錯時,使用WriteLog來幫助判定,因為Dll檔不能使用除錯模式

3.缺少dsound.lib,需要下載DirectX SDK,安裝執行檔後,在安裝路徑找出缺少的Library

4.Visual Studio下使用程式庫與標頭檔,工具=>選項=>專案和方案=>VC++目錄
                                                                   =>設定Include 檔案與程式庫檔案

5.注意Microsoft中Windows 的DEP問題,資料執行防止
   |=>Windows XP下在磁碟C中找出"Boot.ini" 修改關鍵字是AlwaysOff
   |    參考網址:  http://technet.microsoft.com/zh-tw/library/cc700810.aspx
   |=>Windows 7下沒有Boot.ini,需要使用Command line來設置
   |    參考網址:  http://www.bianworld.com/windows7-bcdedit-boot-file-app.html

2011年10月1日 星期六

Mysql在C++程式中的連結與應用

1.首先是標頭Header File宣告
需要注意的是mysql.h 需要安裝MySQL封裝才能得到,除了mysql.h之外尚有其餘虛要參考的Header File(從mysql.h的內容得知)都要一併的加入專案中方可使用


#include "mysql.h"
//忽略LIBCMT.lib, MSVCRTD.lib這些庫,不然連接時會報lnk2005錯誤
#pragma comment(linker,"/nodefaultlib:LIBCMT.lib")
#pragma comment(linker,"/nodefaultlib:MSVCRTD.lib")
 
//用mysqlclient.lib,不要用libmysql.lib,要不你要多帶一個libmysql.dll
//靜態庫有兩個,一個是debug版的,一個是release版的,要注意
 
#if defined _DEBUG
#pragma comment(lib, "mysqlclient.lib")  
#else
#pragma comment(lib, "mysqlclient.lib")
#endif
 
#pragma comment(lib, "wsock32.lib")
#pragma comment(lib, "Advapi32.lib")


2.MySQL使用
宣告和初始化完成後,就可以指定要連結的資料庫位置,目前測試到本機端可以成功使用
遠端使用日後若測試成功會再補上


MYSQL* mysql = NULL;
mysql = mysql_init(mysql);

if (!::mysql_real_connect(mysql, "127.0.0.1", "root","1234", "sci", 0, NULL, 0))
       {
AfxMessageBox(_T(mysql_error(mysql)));
}
else
{
AfxMessageBox(_T("Connected..."));
}
mysql_query(mysql, "UPDATE sci_dial SET ringflag= 1");

        mysql_close(mysql);

參考: http://blog.csdn.net/zwfgdlc/article/details/5556654

2011年8月21日 星期日

Unicast / Broadcast / Multicast 比較

1.Unicast(單點傳播)
通常指的是特定的目的地位址,一般是主機之間互相傳遞封包的方式,也是最常見的網路通訊方式。
因此我們有時稱之為One-to-One的通訊方式。



2.Broadcast(廣播)
通常發生於MultiAccess網路媒介中,例如區域網路(Local Area Network)。在Layer 2中表頭的MAC目的地位址通常是FF-FF-FF-FF-FF-FF,在Layer 3中表頭的IP目的地位址通常是255.255.255.255。連接至同一個網段(Segment)網路媒介上的所有主機及網路設備都會接收到這個封包並進行處理。因此我們稱之為One-to-All的通訊方式。


 3.Multicast(多播/群播)一般應用於相同的來源資料要同時傳送給一群特定的接收者(Multicast Group Client),但是來源端只要發送一份資料,因此頻寬的使用量不會因為接收者增加而增加,是網路視訊(VoD/遠距教學/視訊會議)的最佳解決方案。因此我們稱之為One-to-Many(or Many-to-Many)的通訊方式。



參考: http://ccie11440.blogspot.com/2008/09/unicastbroadcastmulticast.html