原创 c++ 訪問sqlserver數據庫,插入速度優化

1. 概述 使用c++訪問數據庫的方法很多,由於我訪問的是sqlserver數據庫,於是上MSDN查了一下有哪些訪問技術,主要有以下幾種: ODBC  OLEDBADOADO是OLEDB的封裝,使用起來比OLEDB方便。由於ADO比OL

原创 讓Windows7 cpu佔有率100%的分析

   之前在微軟的《編程之美》中有道題目大概是“控制任務管理器中cpu的曲線”,也就是根據自己的意願來控制cpu的佔有率。而我今天只想說的是如何讓cpu佔有率爲100%。    首先,我寫了如下程序: void main() { wh

原创 關於文件中的0D、0A

  文件一般分爲文本文件和二進制文件。   在windows文本文件中,分行即‘\n“,表示爲0x0D 0x0A。分爲兩種情況:  如果你想一個文本文件中寫入一個'\n',文本文件中會增加0x0D 0x0A兩個字節(可以使用utraled

原创 使用sql查找主鍵

  有時沒有工具可以查看數據庫表的主鍵,此時只能使用sql語句來實現。下面兩種方法較爲簡單(sql server能執行成功,Oracle或者其他數據庫沒有嘗試過)。 1:利用SQL自帶的存儲過程 EXEC sp_pkeys @tabl

原创 c++ 變長參數的作爲參數

有時候不僅需要處理變長參數,還需要將變長參數作爲參數,傳遞給其他函數。 先上一段代碼,定義一個函數: /*函數說明write_log, 向文件中寫字符串 *@param pf 文件指針 *@param format 格式字符串(與pri

原创 stack overflow異常分析及解決辦法

  stack overflow異常是程序中常常會碰到的,究其原因,是進程空間中的棧不夠用。windows默認棧大小是1M,使用的棧超過了這個範圍就會包stack overflow異常。   產生原因可以歸結爲兩類: 錯誤。程序中出現了不

原创 Unicode與UTF-8

Unicode unicode是固定長度的字符集,最初由兩個字節共16位表示。16位最多隻能表示65536個字符。當需要表示各種語言的所有字符時,16位是不夠用的。所以unicode4.0新增了一組附加字符集,附加字符集採用兩個16位(注

原创 c語言中的可變長參數

前言 可變長參數指函數的參數個數在調用時才能確定的函數參數。基本上各種語言都支持可變長參數,在特定情形下,可變長參數使用起來非常方便。c語言中函數可變長參數使用“...”來表示,同時可變長參數只能位於固定參數的後面,固定參數的個數至少爲1

原创 c++ double類型的誤差

將字符串轉化爲double類型存在誤差,例如: 字符串爲1.89轉化爲double類型爲:1.8899999999999. 這是正常的。 在c語言中頭文件float.h中有如下定義: #define DBL_EPSILON 2.2

原创 通過Hook將DLL注入進程

首先,讀這篇文章之前,默認已經掌握了進程地址空間,dll加載,windows Hook技術。 1. 爲什麼需要dll注入? 如果一個進程的程序是我們自己編寫的,我們可以在程序中隱式或者顯式地加載需要的dll,不需要dll注入。但是,當一個

原创 sqlserver 測試插入速度

這段時間在做一個項目,寫個應用程序,應用程序需要實時向sqlserver數據庫插入數據。應用程序使用odbc。爲了做壓力測試,需要測試每秒鐘能插多少條記錄到數據庫中。分析了一下,大致有兩個辦法來測: 1.在應用程序端測試, 在應用程序中記

原创 內存映射文件例子

內存映射文件  http://kymcuc.blog.163.com/blog/static/201942114201211542541308/ 1、利用段在同一程序的多個實例之間共享數據 #include<iostr

原创 c++獲取文件信息——_stat函數的使用

c++獲取文件信息——_stat函數的使用   _stat函數的功能 _stat函數用來獲取指定路徑的文件或者文件夾的信息。 函數聲明 int _stat( const char *path, struct _stat *bu

原创 GDB命令詳解

GDB 命令詳細解釋  Linux中包含有一個很有用的調試工具--gdb(GNU Debuger),它可以用來調試C和C++程序,功能不亞於Windows下的許多圖形界面的調試工具。   和所有常用的調試工具一樣,gdb提供了以下

原创 nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z)

環境:在非MFC程序(使用standard windows library)中,添加MFC支持,靜態鏈接MFC庫。   發生以下錯誤: uafxcw.lib(afxmem.obj) : error LNK2005: "void * _