青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

http://wiki.9ria.com/PureMVC
posted @ 2013-01-23 13:55 sheng 閱讀(479) | 評論 (0)編輯 收藏
 
本文轉自:二叉樹博客 http://www.erchashu.com/wiki/doxygen-chm-chinese-hlep-doc

2010年曾經使用Doxygen生成全中文的chm文檔。由于Doxygen生成的chm目錄文件(index.hhc)本身是使用UTF-8編碼的,而古老的chm編譯器(HTML Help Workshop)對于CHM控制文件(index.hhc、index.hhk、index.hhp),卻只支持ANSI編碼(即本地編碼,如中文系統為GBK),所以最終編譯出來的chm文件,左邊的目錄導航欄全是亂碼。為了解決這個問題,可費了一番工夫,得先使用編碼轉換工具轉換后再用chm編譯器編譯(見:使用doxygen為C/C++程序生成中文文檔)。

今天重新拿起Doxygen,驚喜地發現,它已經支持生成ANSI編碼的chm目錄文件(index.hhc)了,所以能省好多工夫,現在終于可以一步搞定。現在想來,Doxygen早就應該支持這個功能的,做起來也很簡單——當然我沒有詳細去翻查Doxygen是從哪個版本開始支持的,反正Doxygen 1.8.0是支持的,想必之后的版本都支持。

下載和安裝 Doxygen

Doxygen 官網 下載最新的Doxygen安裝程序,然后安裝。這個軟件包包括了一個GUI界面的前端工具,可以幫助我們方便創建Doxygen配置文件和生成目標文檔。

下面以 Doxygen 1.8.0 為例進行講解。

下載和安裝 chm 編譯器

我們使用微軟古老的 HTML Help Workshop 1.3,這個軟件N久沒更新了。

下載地址: 微軟官網

下載后根據提示安裝。

項目一般設置

首先在“Wizard”標簽的Project項進行如下設置:

  • 項目名稱:將在最新的文檔首頁中顯示
  • 源碼列表:選擇要生成文檔的源代碼或目錄,可以有多個文件或目錄形成一個列表。建議使用相對路徑,相對于當前目錄(也即當前配置文件所在的目錄)
  • 遞歸掃描:如果需要對整個源碼目錄下的所有子目錄及文件生成文檔,請勾選本項
  • 輸出目錄:設置最終生成的幫助文檔的存儲路徑,建議使用相對路徑

下一步,Mode項,根據需要設置文檔生成模式。

下一步,Output項,設置輸出格式,勾選HTML和“prepare for compressed HTML(.chm)”

然后切換到“Expert”標簽的“HTML”項,設置HTML和CHM相關的選項:

  • GENERATE_HTMLHELP:確保已經勾選了
  • CHM_FILE:最終生成的.chm的文件名,如“HkcProjectHelp.chm”。默認為“index.chm”??梢允褂寐窂剑部梢允褂孟鄬β窂?,相對于上面設置的輸出目錄的html目錄(建設使用上一級目錄,如“..\MyDoc.chm”)
  • HHC_LOCATION:chm 編譯器(hhc.exe)的全路徑。請指到 HTML Help Workshop 的安裝目錄的 hhc.exe 程序
  • CHM_INDEX_ENCODING:chm索引文件編碼,下面會講到,這里填“GBK”

編碼設置

編碼設置很重要,如果設置不當,生成的文檔會出現亂碼。因為 Doxygen 汲及的東西多,有好幾項編碼設置,所以需要認真對待,根據項目的實情情況設置。

所有高級設置(包括編碼設置)都在“Expert”標簽,重要的設置項如下:

  • Project/DOXYFILE_ENCODING:當前 Doxygen 配置文件本身的字符編碼,默認為UTF-8,一般不需要修改
  • Project/OUTPUT_LANGUAGE:輸出語言。這里是指Doxygen自己生成的導航、提示、幫助等文本的文字采用的語言。我們希望幫助文檔是全中文的,所以選擇Chinese
  • Input/INPUT_ENCODING:輸入文件的編碼。這里是指我們的源代碼文件本身的編碼。在Windows平臺一般是系統編碼(GBK),而Linux平臺一般是UTF-8。請用文本編輯器查看源文件的編碼。這里如果設置的不一致,源碼文件的注釋中所有非ASCII字符將在生成的文檔中變成亂碼。
  • HTMP/CHM_INDEX_ENCODING:這里設置Doxygen生成的CHM索引文件的編碼,以前是不能設置的,默認為UTF-8,而微軟的編譯器不能識別UTF-8編碼的索引文件,所以最終造成左邊目錄導航欄亂碼。我們設置它為GBK,這樣Doxygen將為我們生成GBK編碼的索引文件(.hhc、.hhk、.hhp)

生成CHM文檔

設置好了后,點擊“Run”→“Run doxygen”生成最終的.chm文檔,如果設置正確,打開后是全中文的了。

posted @ 2012-11-27 14:19 sheng 閱讀(951) | 評論 (0)編輯 收藏
http://fuliang.iteye.com/blog/305158 數據挖掘
http://www.cnblogs.com/ldcsaa/archive/2012/06/13/2546551.html性能 Windows Socket 服務端與客戶端組件(源代碼及測試用例下載)
posted @ 2012-11-19 16:05 sheng 閱讀(203) | 評論 (0)編輯 收藏
先介紹個比較簡單的程序,windows下讀內存:

#include 
"stdafx.h"
#include 
<windows.h>
#include 
<iostream>
using namespace std;

const char FileMaping[255= "FileMaping";
typedef 
struct file_map_parameter_t
{
    
int i_id;
    
int j_id;
    
char c_id;
}
file_map_parameter_t;

typedef file_map_parameter_t FileMap_t[
100];
file_map_parameter_t 
* m_addr;

bool ReadFileMapping()
{
    size_t len 
= sizeof(FileMaping);
    wchar_t
* wstr_name = (wchar_t*)malloc((len+1)*sizeof(wchar_t));
    HANDLE m_handle 
= ::OpenFileMapping(FILE_MAP_ALL_ACCESS,false,wstr_name);
    
if (NULL == m_handle)
    
{
        m_handle 
= ::CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,
            
sizeof(FileMap_t),wstr_name);
        
if( NULL == m_handle)
        
{
            cout
<<"共享文件生成失敗!"<<endl;
            
return false;
        }
 
        
else
        
{
            cout
<<"共享文件生成成功!"<<endl;
        }


    }
 
    m_addr 
= (file_map_parameter_t*)::MapViewOfFile(m_handle,FILE_MAP_WRITE,0,0,sizeof(FileMap_t));

    
for (int i = 0;i<20;i++)
    
{
        file_map_parameter_t 
* m_addrtmp;
        m_addrtmp 
= m_addr + i; 
    }

    
    
return true;
}

int _tmain(int argc, _TCHAR* argv[])
{
    ReadFileMapping();
    
return 0;
}


寫共享內存:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;

const char FileMaping[255] = "FileMaping";
typedef struct file_map_parameter_t
{
 int i_id;
 int j_id;
 char c_id;
}file_map_parameter_t;

typedef file_map_parameter_t FileMap_t[100];
file_map_parameter_t * m_addr;

bool WriteFileMapping()
{
 size_t len = sizeof(FileMaping);
 wchar_t* wstr_name = (wchar_t*)malloc((len+1)*sizeof(wchar_t));
 HANDLE m_handle = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,false,wstr_name);
 if (NULL == m_handle)
 {
  m_handle = ::CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,
   sizeof(FileMap_t),wstr_name);
  if( NULL == m_handle)
  {
   cout<<"共享文件生成失??!"<<endl;
   return false;
  }
  else
  {
   cout<<"共享文件生成成功!"<<endl;
  }

 }
 m_addr = (file_map_parameter_t*)::MapViewOfFile(m_handle,FILE_MAP_WRITE,0,0,sizeof(FileMap_t));

 for (int i = 0;i<20;i++)
 {
  (m_addr + i)->c_id = 'i';
  (m_addr + i)->i_id = i;
  (m_addr + i)->j_id = 2*i;
 }
 return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
 WriteFileMapping();
 return 0;
}


這里有一個問題沒有解決:
    對共享內存的大小問題,比如說上面寫的程序是已知共享內存的大小,比如說有20個struct,但是如果
這個大小不是固定的比如類似于一個vector的話該怎么操作呢?

利用boost::interprocess請看http://blog.csdn.net/great3779/article/details/7226388







posted @ 2012-11-19 10:45 sheng 閱讀(650) | 評論 (0)編輯 收藏
1. gtest + protoBuf vs2010 win32 環境搭建(解決lib包沖突問題) http://blog.csdn.net/wonka438/article/details/7724098
2.以小見大——那些基于 protobuf 的五花八門的 RPC(3)    http://blog.csdn.net/lanphaday/article/details/6318432

3.網絡通信相關,chenshuo的blog:http://blog.csdn.net/solstice/article/details/6527585
posted @ 2012-11-15 11:33 sheng 閱讀(386) | 評論 (0)編輯 收藏

先上代碼:

#include 
"stdafx.h"
#include
<iostream>
#include 
"luabind\luabind.hpp"

extern "C"
{
#include 
"lua.h"
#include 
"lualib.h"
#include 
"lauxlib.h"
}


using namespace std;

bool LoadScript(lua_State *L,const string& fname)
{
    
if (luaL_dofile(L,fname.c_str()))
    
{
        cerr
<<lua_tostring(L,-1)<<endl;
        
return false;
    }
 
    
return true;
}


void testFunc(int k)
{
    cout
<<"hello there, i am a cpp fun"<<endl;
    cout
<<"input num:="<<k<<endl;
}


class NumberPrinter {
public:
    NumberPrinter(
int number) :
      m_number(number) 
{}

      
void print() {
          cout 
<< m_number << endl;
      }


private:
    
int m_number;
}
;


int _tmain(int argc, _TCHAR* argv[])
{
    
using namespace luabind;
    lua_State
* L = luaL_newstate();
    module(L, 
"cppapi")
        [
            def(
"testFunc", (void(*)(int))testFunc)
        ];

    
// 使用LuaBind導出NumberPrinter類
    luaopen_base(L);
    luabind::open(L);

    luabind::module(L) 
        [
            luabind::class_
<NumberPrinter>("NumberPrinter")
            .def(luabind::constructor
<int>())
            .def(
"print"&NumberPrinter::print)
        ];
    
    luaL_openlibs(L);
    LoadScript(L,
"test.lua");
    
try{
         
int add_ret = luabind::call_function<int>(L,"add",10,4);
         
int call_global = luabind::object_cast<int>(luabind::globals(L)["nGlobal"]);
         
string strGlobal = luabind::object_cast<string>(luabind::globals(L)["strGlobal"]) ;
         luabind::
object lua_object = luabind::globals(L)["t"];
         
//--2種辦法load table
         string strName = luabind::object_cast<string>(lua_object["name"]);
         
int iAge = luabind::object_cast<int>(lua_object["age"]);
         
string strElse = luabind::object_cast<string>(lua_object["desc"]);
    }

    
catch(luabind::error& e)
    
{
        cout
<<e.what()<<endl;
        printf(
"AI throw error: err_msg[%s]", lua_tostring(L, -1));
        
return false;
    }

    
    lua_close(L);
    
return 0;
}

其中test.lua的代碼如下:
Print2000 = NumberPrinter(2000)
Print2000:print()

nGlobal = 10 --一個全局的整形變量
strGlobal = "hello i am in lua" --一個全局的字符串變量
--一個返回值為int類型的函數
function add(a, b)
    return a+b
end
--一個返回值為string類型的函數
function strEcho(a)
    print(a)
    return 'haha i h

ave print your input param'
end

cppapi.testFunc(10) --調用c++暴露的一個測試函數
t={name='ettan', age=23, desc='正值花季年齡'}

運行結果為:



這上面luabind調用c++函數的實例:調用testFunc函數;也有c++調用lua的代碼,具體的見代碼。
此代碼在我的vs2010上面調試通過,前提是必須配好環境如:添加依賴庫luabind.debug.lib;lua.debug.lib
添加依賴庫路徑。

特別注意:

首先Lua是“動態編譯的腳本語言”,而loadfile只是把源文件加載到內存中,還少了“編譯”這一步,可以用“luaL_dofile(L,"test.lua");”來替換,它既加載又編譯。替換之后執行應該就沒有問題了。

但是還沒完,luaL_dofile 實際上是個宏:

 

  1. #define luaL_dofile(L, fn) \ 
  2. (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))

 

LUA_MULTRET也是宏定義,值為-1,表示函數有多個返回值(Lua規則,pil 24.2--堆棧)。

擴展開來就是以下兩句:

  1. luaL_loadfile(L, fn);
  2. lua_pcall(L, 0, LUA_MULTRET, 0);

pcall以上述參數執行的時候,會把加載到內存中的源程序編譯成可以用于執行的2進制代碼,并將全局變量壓棧(在Lua中,函數也是變量,pil 2.5 -- Functions,畢竟函數名和函數體是不同的2個東西)。就跟PE文件格式里的Section一樣(PE文件就是Windows3.1之后的.exe/.dll文件)。當然如果你不知道什么PE文件也沒關系--我只是打個比方--就當成VS2005編譯代碼時生成的.obj文件。

 

 

雖然實際使用中99%的情況都是直接使用dofile,但是我想將該問題提出來說可以更加直觀的理解“動態編譯”。

參照:
代碼和文字大部分出自 1.   http://blog.csdn.net/caoyanting007/article/details/5709820
                             2.   http://mobile.51cto.com/iphone-285654.htm

posted @ 2012-11-13 10:46 sheng 閱讀(3691) | 評論 (0)編輯 收藏
     摘要:   閱讀全文
posted @ 2012-08-24 09:39 sheng 閱讀(3841) | 評論 (0)編輯 收藏
     摘要: 利用boost解析xml  閱讀全文
posted @ 2012-08-23 10:08 sheng 閱讀(13324) | 評論 (0)編輯 收藏
在最近做的一個項目中需要用到檢測進程狀態的功能,在網上兜了半圈,普遍介紹的方法有三種:
1. 是利用GetExitCodeProcess(pi.hProcess,&dwExitCode);通過看dwExitCode返回值是不是STILL_ACTIVE,依然活動,說明存在;
2 .waitforsingleobject,通過超時來判斷,具體的實現方法可以去網上查,
3. openprocess,通過返回值來判斷,如果返回值為NULL則表示進程已經打開,否則沒有打開。
上面3個方法別人都說行,也有人說有局限性,就拿openprocess來說吧,自己在測試是發現線程關掉了但是返回值還是NULL,郁悶啊~~,沒辦法只能用最土的辦法來解決這個問題,
4. load系統的進程表,看進程id是不是匹配,匹配則表示正在運行,否則就已經掛了,代碼如下:
#include <Tlhelp32.h>

//如果有運行,返回進程的true,沒運行返回false
bool ProcessExist(DWORD process_id) 

PROCESSENTRY32 pe; 
DWORD id = 0; 
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); 
pe.dwSize = sizeof(PROCESSENTRY32); 
if( !Process32First(hSnapshot,&pe) ) 
{
  CloseHandle(hSnapshot);
  return false;
}
 
while(1) 

pe.dwSize = sizeof(PROCESSENTRY32); 
if( Process32Next(hSnapshot,&pe)==FALSE ) 
{
  CloseHandle(hSnapshot);
  return false;
}
if(process_id == pe.th32ProcessID) 


  CloseHandle(hSnapshot);
  return true;
 


}

posted @ 2012-08-22 16:55 sheng 閱讀(2832) | 評論 (3)編輯 收藏
先直接上方法
1. 準備好boost編譯文件;

2.(我放在D:/cpp目錄下)解壓到當前文件夾

3.打開VS2010->VS TOOLS->VS命令提示

4.CD D:/cpp/boost_1_46_1 

5.輸入bootstrap,便生成bjam.exe文件

6.輸入bjam toolset=msvc-10.0 variant=debug,release threading=multi link=static,便生成boost庫(20多分鐘,時間已經算很短了,之前都是1,2個小時應該是跟這個參數有關,編譯完成后為1G多一點,之前都是3.7G左右)

7.修改VS2010的參數 在項目的組合顯示那找到屬性頁,打開屬性頁,選擇配置屬性,選擇VC++目錄,設置includepath和libpath,

如我的為D:/cpp/boost_1_46_1;$(IncludePath)

D:/cpp/boost_1_46_1/stage/lib;$(LibraryPath)

 

圖解參照http://blog.csdn.net/respawn/article/details/7588396,這個弄的很清楚。
posted @ 2012-06-18 16:46 sheng 閱讀(382) | 評論 (0)編輯 收藏
僅列出標題
共3頁: 1 2 3 

導航

<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

統計

常用鏈接

留言簿(1)

隨筆檔案

收藏夾

同行

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区尤物| 亚洲视频axxx| 欧美亚洲一区二区在线| 牛牛影视久久网| 精品999日本| 亚洲综合不卡| 亚洲高清网站| 久久精品在线视频| 国产精品乱子久久久久| 夜夜嗨av一区二区三区网站四季av| 久久一综合视频| 欧美在线高清| 韩日成人在线| 美女视频网站黄色亚洲| 久久疯狂做爰流白浆xx| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品你懂的| 欧美日本不卡高清| 亚洲午夜激情在线| 亚洲一区二区三区国产| 欧美午夜欧美| 亚洲午夜激情在线| 亚洲性视频h| 国产一区二区三区无遮挡| 久久久久久尹人网香蕉| 国产一区二区成人久久免费影院| 亚洲一区二区伦理| 亚洲主播在线观看| 国产真实久久| 快she精品国产999| 玖玖玖免费嫩草在线影院一区| 亚洲国产成人porn| 日韩亚洲欧美高清| 国产欧美亚洲视频| 女人香蕉久久**毛片精品| 欧美www视频| 一区二区av在线| 亚洲综合精品自拍| 亚洲成人资源| 99精品免费视频| 国产亚洲成精品久久| 玖玖综合伊人| 欧美婷婷久久| 久久最新视频| 欧美三级在线| 久久综合伊人77777麻豆| 欧美激情2020午夜免费观看| 亚洲一区二区三区中文字幕| 欧美在线视频导航| 一区二区三区欧美激情| 久久国产精品99久久久久久老狼 | 国产午夜精品久久久| 另类欧美日韩国产在线| 欧美日韩国产影片| 久久久久久综合| 欧美日韩国产麻豆| 久热精品在线视频| 国产精品久久久久77777| 免费久久99精品国产自| 国产精品久久久久三级| 欧美丰满高潮xxxx喷水动漫| 国产九九精品视频| 免费观看一级特黄欧美大片| 欧美三级在线| 亚洲高清av| 激情久久影院| 亚洲欧美成人精品| 国产精品99久久99久久久二8| 久久久久.com| 亚洲你懂的在线视频| 欧美精品在线看| 久久网站免费| 欧美少妇一区二区| 麻豆精品视频| 国产色产综合产在线视频| 一区二区三区久久网| 日韩午夜av在线| 免费成人高清| 免费在线一区二区| 黄色日韩网站视频| 亚洲欧美日韩一区二区三区在线观看| 国产一区av在线| 久久午夜精品一区二区| 一区二区久久| 欧美高清视频一二三区| 亚洲欧洲在线免费| 美女久久网站| 亚洲视频自拍偷拍| 欧美成人网在线| 亚洲欧美三级在线| 亚洲国产精品一区在线观看不卡 | 免费在线国产精品| 亚洲女爱视频在线| 亚洲国产导航| 国产欧美日韩91| 欧美女激情福利| 久久免费黄色| 亚洲一区精彩视频| 亚洲茄子视频| 久久综合福利| 欧美影院午夜播放| 99热在线精品观看| 在线日本成人| 国产日韩精品一区二区三区在线| 欧美伦理91i| 久久综合伊人| 亚洲欧美日本视频在线观看| 亚洲精品女人| 久久久久天天天天| 欧美一区二区三区四区夜夜大片| 亚洲美女免费精品视频在线观看| 黄色国产精品一区二区三区| 国产精品户外野外| 欧美日韩人人澡狠狠躁视频| 久久影院午夜论| 久久久国产精品亚洲一区| 亚洲午夜羞羞片| 夜夜嗨av一区二区三区| 欧美激情久久久久| 久久一二三四| 老司机aⅴ在线精品导航| 性欧美在线看片a免费观看| 亚洲天天影视| 一区二区三区日韩欧美| 日韩网站免费观看| 夜夜精品视频| 日韩一区二区精品葵司在线| 亚洲破处大片| 日韩亚洲欧美在线观看| 91久久久久久久久| 亚洲精品乱码久久久久久黑人 | 欧美a级片网| 久久久久久9999| 性做久久久久久久免费看| 亚洲欧美日韩在线| 欧美一区二区视频在线观看| 欧美一区二区三区免费视| 西西人体一区二区| 久久国产精品网站| 久久久福利视频| 久久久久在线观看| 欧美成人免费在线视频| 亚洲国产精品久久91精品| 亚洲国产精品女人久久久| 欧美激情视频给我| 亚洲人午夜精品免费| 一区二区免费在线观看| 亚洲免费在线观看| 久久精品视频在线看| 免费成人毛片| 欧美日韩国产系列| 国产精品亚洲产品| 在线电影一区| 夜夜夜精品看看| 欧美在现视频| 免费观看久久久4p| 亚洲人久久久| 亚洲午夜久久久久久尤物| 久久精品国产欧美激情| 欧美成人69av| 国产精品视频你懂的| 激情国产一区| 一区二区三区四区五区视频| 久久久国产一区二区| 夜夜爽99久久国产综合精品女不卡| 久久成人一区二区| 国产精品麻豆欧美日韩ww| 亚洲精品久久久蜜桃| 久久人人爽人人爽爽久久| 一区二区三区国产在线| 欧美成年人视频| 在线日韩日本国产亚洲| 欧美在线观看一区二区三区| av成人免费在线| 欧美国产综合| 红桃视频国产一区| 久久国产精彩视频| 这里是久久伊人| 欧美精品在线免费播放| 91久久精品国产91性色tv| 久久在线视频在线| 欧美一激情一区二区三区| 国产精品日日做人人爱| 亚洲图片欧美午夜| 日韩一级在线观看| 欧美精品首页| 亚洲欧洲在线看| 亚洲电影自拍| 美女爽到呻吟久久久久| 亚洲国产精品传媒在线观看| 麻豆精品视频在线| 久久久久88色偷偷免费| 一区二区亚洲精品| 麻豆av一区二区三区久久| 欧美中文字幕久久| 国语自产在线不卡| 免费看av成人| 欧美大片一区二区| 一个色综合av| 亚洲午夜免费视频|