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年12月6日 星期二
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
需要注意的是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的通訊方式。
通常指的是特定的目的地位址,一般是主機之間互相傳遞封包的方式,也是最常見的網路通訊方式。
因此我們有時稱之為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的通訊方式。
通常發生於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
訂閱:
文章 (Atom)