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

老大不傷悲

 

2011年8月4日

轉(zhuǎn) MSYS&MINGW環(huán)境中編譯mediastream2和ortp

(1)      安裝intltool:訪問(wèn)http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/并下載intltool_0.40.4-1_win32.zip,解壓到c:\msys目錄下;

(2)      安裝linphone-deps:訪問(wèn)http://download.savannah.gnu.org/releases- noredirect/linphone/misc/并下載linphone-deps-win32-091203.zip,解壓到c:\msys目錄 下;

(3)      安裝gtk+:訪問(wèn)http://www.gtk.org/download-windows.html,下載pkg-config_0.23-3_win32.zip和glib_2.24.0-2_win32.zip,解壓到c:\msys目錄下;

(4)      編譯libSRTP:

  1. 訪問(wèn)http://sourceforge.net/projects/srtp/并下載srtp-1.4.4.tgz,并解壓到c:\msys\src目錄下(也可以是其它目錄);
  2. 運(yùn)行c:\msys\msys.bat,執(zhí)行以下命令,

cd /src/srtp

autoconf

./configure–prefix=/usr

make

make install

make clean

(5)      編譯ortp:

  1. 訪問(wèn)http://download.savannah.gnu.org/releases-noredirect/linphone/ortp/sources/并下載ortp-0.16.3.tar.gz,解壓到c:\msys\src目錄下(也可以是其它目錄);
  2. 運(yùn)行c:\msys\msys.bat,執(zhí)行以下命令,

cd /src/ortp-0.16.3

autoconf

./configure–prefix=/usr

make

make install

make clean

(6)      編譯mediastreamer2:

  1. 訪問(wèn)http://download.savannah.gnu.org/releases-noredirect/linphone/mediastreamer/并下載mediastreamer-2.5.0.tar.gz,解壓到c:\msys\src目錄下(也可以是其它目錄);
  2. 運(yùn)行c:\msys\msys.bat,執(zhí)行以下命令,

cd /src/mediastreamer-2.5.0

autoconf

./configure–prefix=/usr

make

make install

make clean

(7)      創(chuàng)建lib文件供VC++使用:運(yùn)行c:\msys\msys.bat,執(zhí)行以下命令,

cd /lib

cp../src/mediastream-2.5.0/build/win32native/mediastreamer2.def mediastreamer.def

cp ../src/ortp-0.16.3/build/win32native/ortp.def ortp.def

cp../bin/libortp-8.dll .

cp../bin/libmediastreamer-0.dll .

dlltool –Dlibortp-8.dll –d ortp.def –l ortp.lib

(為支持linphone media engine 需要在ortp.def文件添加如下代碼:

    payload_type_pcmu8000
    payload_type_pcma8000
    payload_type_pcm8000
    payload_type_l16_mono
    payload_type_l16_stereo
    payload_type_lpc1016
    payload_type_g729
    payload_type_g7231
    payload_type_g7221
    payload_type_g726_40
    payload_type_speex_nb
    payload_type_speex_wb
    payload_type_speex_uwb
    payload_type_ilbc
    payload_type_telephone_event
    av_profile
)

dlltool –Dlibmediastreamer-0.dll.a –d mediastreamer.def –l mediastreamer.lib

原帖
http://www.cnblogs.com/joiner/archive/2010/06/18/1759943.html

posted @ 2011-08-04 13:32 長(zhǎng)風(fēng) 閱讀(824) | 評(píng)論 (0)編輯 收藏

轉(zhuǎn) MinGW&MSYS的手工安裝

本節(jié)所需的程序包如未特別注明,都是從http://sourceforge.net/downloads/mingw/下載,本節(jié)下文稱之為“下載站點(diǎn)”。

(1)      建立程序目錄:在c盤建立msys目錄,并在msys目錄下建立mingw子目錄;

(2)      安裝MinGW:訪問(wèn)下載站點(diǎn),

  1. 瀏覽MinGW->BaseSystem->GNU-Binutils->binutils-2.20.51,下載binutils-2.20.51-1-mingw32-bin.tar.lzma;
  2. 瀏覽MinGW->BaseSystem->RuntimeLibrary->MinGW-RT->mingwrt- 3.18,下載mingwrt-3.18-mingw32-dev.tar.gz和mingwrt-3.18-mingw32-dll.tar.gz;(如果在編譯程序的時(shí)候,出現(xiàn)undefined reference to __dyn_tls_init_callback 鏈接錯(cuò)誤時(shí),可以換一個(gè)版本低一些的)
  3. 瀏覽MinGW->BaseSystem->RuntimeLibrary->Win32-API w32api-3.14,下載w32api-3.14-mingw32-dev.tar.gz;
  4. 瀏覽MinGW->BaseSystem->GCC Version4->gcc-4.5.0-1, 下載gcc-c++-4.5.0-1-mingw32-bin.tar.lzma、gcc-core-4.5.0-1-mingw32- bin.tar.lzma、libgcc-4.5.0-1-mingw32-dll-1.tar.lzma和libstdc++-4.5.0-1- mingw32-dll-6.tar.lzma;
  5. 瀏覽MinGW->mpfr->mpfr-2.4.1-1,下載libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma;
  6. 瀏覽MinGW->gmp->gmp-5.0.1-1,下載libgmp-5.0.1-1-mingw32-dll-10.tar.lzma;
  7. 瀏覽MinGW->mpc->mpc-0.8.1-1,下載libmpc-0.8.1-1-mingw32-dll-2.tar.lzma;
  8. 瀏覽MinGW->pthread-w32->pthread-w32-2.8.0-3,下載pthreads-w32-2.8.0-3-mingw32-dev.tar.lzma;
  9. 將以上所下載的壓縮包解壓縮到c:\msys\mingw目錄下;

(3)      安裝MSYS,訪問(wèn)下載站點(diǎn),

  1. 瀏覽MSYS->BaseSystem->msys-1.0.14-1,下載msysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzma;
  2. 瀏覽MSYS->coreutils->coreutils-5.97-3,下載coreutils-5.97-3-msys-1.0.13-bin.tar.lzma和coreutils-5.97-3-msys-1.0.13-ext.tar.lzma;
  3. 瀏覽MSYS->automake-1.11.1-1,下載automake-1.11.1-1-msys-1.0.13-bin.tar.lzma;
  4. 瀏覽MSYS->autoconf->autoconf-2.65-1,下載autoconf-2.65-1-msys-1.0.13-bin.tar.lzma;
  5. 瀏覽MSYS->libtool->libtool-2.2.7a-2,下載libtool-2.2.7a-2-msys-1.0.13-bin.tar.lzma;
  6. 瀏覽MSYS->crypt->crypt-1.1_1-3,下載crypt-1.1_1-3-msys-1.0.13-bin.tar.lzma和libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma;
  7. 瀏覽MSYS->perl->perl-5.6.1_2-2,下載perl-5.6.1_2-2-msys-1.0.13-bin.tar.lzma;
  8. 瀏覽MSYS->gettext->gettext-0.17-2,下載gettext-0.17-2-msys-1.0.13-bin.tar.lzma、 gettext-0.17-2-msys-1.0.13-ext.tar.lzma、gettext-0.17-2-msys-1.0.13- dev.tar.lzma和libintl-0.17-2-msys-dll-8.tar.lzma;
  9. 瀏覽MSYS->bash->bash-3.1.17-3,下載bash-3.1.17-3-msys-1.0.13-bin.tar.lzma;
  10. 瀏覽MSYS->regex->regex-1.20090805-2,下載libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma;
  11. 瀏覽MSYSàtermcapàtermcapà0.20050421_1-2,下載libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma;
  12. 瀏覽MSYS->sed->sed-4.2.1-2,下載sed-4.2.1-2-msys-1.0.13-bin.tar.lzma;
  13. 瀏覽MSYS->libicon->libiconv-1.13.1-2,下載libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma;
  14. 瀏覽MSYS->make->make-3.81-3,下載make-3.81-3-msys-1.0.13-bin.tar.lzma;
  15. 瀏覽MSYS->gawk->gawk-3.1.7-2,下載gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma;
  16. 瀏覽MSYS->grep->grep-2.5.4-2,下載grep-2.5.4-2-msys-1.0.13-bin.tar.lzma;
  17. 瀏覽MSYS->diffutils->diffutils-2.8.7.20071206cvs-3,下載diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma;
  18. 瀏覽MSYS->openssl->openssl-1.0.0-1,下載libopenssl-1.0.0-1-msys-1.0.13-dev.tar.lzma;
  19. 瀏覽MSYS->tar->tar-1.23-1,下載tar-1.23-1-msys-1.0.13-bin.tar.lzma;
  20. 瀏覽MSYS->m4->m4-1.4.14-1,下m4-1.4.14-1-msys-1.0.13-bin.tar.lzma;
  21. 將以上所下載的程序包解壓到c:\msys目錄下;
  22. 創(chuàng)建fstab文件:在c:\msys\etc目錄下創(chuàng)建文件fstab,并增加如下內(nèi)容,

c:/msys/mingw    /mingw

測(cè)試基本環(huán)境:運(yùn)行c:\msys\msys.bat,進(jìn)入命令行界面執(zhí)行g(shù)cc –version,確認(rèn)基本環(huán)境已安裝好;

源貼

http://www.cnblogs.com/joiner/archive/2010/06/18/1759941.html

posted @ 2011-08-04 13:28 長(zhǎng)風(fēng) 閱讀(1095) | 評(píng)論 (0)編輯 收藏

最近研究libjingle的經(jīng)驗(yàn)總結(jié)

最近有一個(gè)語(yǔ)言項(xiàng)目方面的調(diào)研,需要評(píng)估一下libjingle,所以研究了半個(gè)月的libjingle,現(xiàn)在把經(jīng)驗(yàn)總結(jié)如下(如有不對(duì),請(qǐng)不吝賜教):
1、libjingle庫(kù)所帶例子只支持rtpdump文件傳遞語(yǔ)音,不支持實(shí)時(shí)語(yǔ)音通話;
2、最新的幾個(gè)版本的libjingle庫(kù)去掉了GIPS voiceEngine的相關(guān)部分(可能是因?yàn)間oogle收購(gòu)了GIPS);
3、那么在windows下要支持實(shí)時(shí)語(yǔ)音通話,可以用linphone media engine,不過(guò)這個(gè)庫(kù)是linux下的,所以遷移過(guò)來(lái)會(huì)費(fèi)不少精力(不知有沒(méi)有更好的方法):
要想在windows下用linphone media engine, 首先,按照README的說(shuō)明添加如下代碼:
Add the following lines into the libjingle.scons file.
    In the "talk.Library(env, name = "libjingle",..." section, you need to add:
      "HAVE_LINPHONE",
      "HAVE_SPEEX",
      "HAVE_ILBC",
    to the "cppdefines = [".
    add:
     "session/phone/linphonemediaengine.cc",
    to the "srcs = [ ..."

    add:     
      "third_party/mediastreamer/include",
      "third_party/ortp/include"
    to the "includedirs = [ ..."

    In the "talk.App(env, name = "call",..." section, you need to add:
      "ortp"
      "mediastreamer",
    to the "libs = [".
 
然后,
訪問(wèn)http://download.savannah.gnu.org/releases-noredirect/linphone/ortp/sources/下載ortp代碼,
訪問(wèn)http://download.savannah.gnu.org/releases-noredirect/linphone/mediastreamer/下載mediastreamer,
并復(fù)制到libjingle庫(kù)的third_party中,文件夾名需與上一步添加的路徑名一致。

在windows下需要dll,所以還得編譯兩個(gè)庫(kù)的dll,方法轉(zhuǎn)自:
http://www.cnblogs.com/joiner/archive/2010/06/18/1759941.html Mingw&msys的手動(dòng)安裝;
http://www.cnblogs.com/joiner/archive/2010/06/18/1759943.html Mingw&msys環(huán)境中編譯mediastreamer2和ortp。
接著,
copy .lib文件到talk\build\dbg\lib目錄,
copy .dll到talk\build\dbg\staging目錄。

然后,修改libjingle庫(kù)的socketaddress.cc里的一個(gè)bug,參考http://mysuperbaby.iteye.com/blog/910830
增加紅色,解決域名轉(zhuǎn)IP的問(wèn)題:
bool SocketAddress::StringToIP(const std::string& hostname, uint32* ip) {
  in_addr addr;
  struct hostent *host;
  if (isalpha(hostname.c_str()[0]))
  {
            host = gethostbyname(hostname.c_str());
            if (host == NULL)
            {
                printf("gethostbyname error\n");
                return false;
            }
            memcpy(&addr.s_addr,   host->h_addr_list[0],host->h_length);
  }
  else if (inet_aton(hostname.c_str(), &addr) == 0)
  {  
      return false;
  }
  *ip = NetworkToHost32(addr.s_addr);
  return true;
}

按照README的方法,編譯。

通過(guò)后運(yùn)行call.exe,與Gtalk通話。

如果音質(zhì)不好,斷斷續(xù)續(xù),可以在mingw&msys下,
移除 winsnd2.c 添加winsnd3.c 重新編譯ortp庫(kù)。

還有就是關(guān)于receiving RTCP packet: Connection reset by peer. 參考http://mysuperbaby.iteye.com/blog/911159
這篇文章,也沒(méi)有解決,不過(guò)不影響音質(zhì)。

posted @ 2011-08-04 11:59 長(zhǎng)風(fēng) 閱讀(7304) | 評(píng)論 (10)編輯 收藏

2011年4月24日

最近筆試面試集錦(c/c++)

最近在找工作,把遇到的筆試、面試題記錄在此,總結(jié)經(jīng)驗(yàn)教訓(xùn),為后面的筆試、面試打好基礎(chǔ)。
閑話少敘,看題:
1、
聲明以下變量(簡(jiǎn)單的就不列了,列我覺(jué)得稍微有點(diǎn)難度的吧)
a、指向整型的指針的指針的數(shù)組: int **p[];
b、指向數(shù)據(jù)的指針: int (*p)[];
c、參數(shù)為void,返回值為void的函數(shù)數(shù)組:void (*p[])();

2、下列代碼輸出什么?
int a = -5;
unsigned int b = 1;
b > a ? cout << b : cout << a ;
輸出 -5 ,因?yàn)樗阈g(shù)轉(zhuǎn)化把int提升為unsigned int。

3、下列代碼輸出什么?
int a = 1;
int b = 2;
int c = a+++b;
cout << "a=" << a << " b=" << b << " c=" << c;
a=2 b=2 c=3;
優(yōu)先級(jí)后置++ > 前置++ > + ;NC題,那個(gè)寫代碼的時(shí)候不會(huì)加個(gè)括號(hào)。

4、實(shí)現(xiàn)下列運(yùn)算
1-2+3-4+5-6+7-8+9
方法1:
int sum = 0;
for (int i=1; i<10; i++) {
    if (i % 2) {
        sum += i;  
    } else {
        sum -= i;
    }
}
 
方法2:
int sum = 0;
int flag = -1;
for (int i=1; i<10; i++) {
    flag *= -1;
    sum += flag * i;
}

答題的時(shí)候?qū)懥藘煞N,以為方法2的效率高,不過(guò)回來(lái)加大循環(huán)量后,發(fā)現(xiàn)方法1快些,兩次乘法比一次求余慢。

5、memcpy是,目標(biāo)內(nèi)存與源內(nèi)存有重疊是怎么copy?
可以從后往前拷。

未完待續(xù)


posted @ 2011-04-24 20:06 長(zhǎng)風(fēng) 閱讀(508) | 評(píng)論 (2)編輯 收藏

2010年8月29日

vc 創(chuàng)建Dll

DLL(Dynamic Linkable Library)可以看成一些可以直接拿來(lái)用的變量、函數(shù)或類的集合。在庫(kù)的發(fā)展史上經(jīng)歷了“無(wú)庫(kù)-靜態(tài)鏈接庫(kù)-動(dòng)態(tài)鏈接庫(kù)”的時(shí)代。

 

  靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)都是共享代碼的方式,如果采用靜態(tài)鏈接庫(kù),則無(wú)論你愿不愿意,lib中的指令都被直接包含在最終生成的EXE文件中了。但是若使用DLL,該DLL不必被包含在最終EXE文件中,EXE文件執(zhí)行時(shí)可以“動(dòng)態(tài)”地引用和卸載這個(gè)與EXE獨(dú)立的DLL文件。靜態(tài)鏈接庫(kù)和動(dòng)態(tài)鏈接庫(kù)的另外一個(gè)區(qū)別在于靜態(tài)鏈接庫(kù)中不能再包含其他的動(dòng)態(tài)鏈接庫(kù)或者靜態(tài)庫(kù),而在動(dòng)態(tài)鏈接庫(kù)中還可以再包含其他的動(dòng)態(tài)或靜態(tài)鏈接庫(kù)。

  對(duì)動(dòng)態(tài)鏈接庫(kù),我們還需建立如下概念:

  (1DLL 的編制與具體的編程語(yǔ)言及編譯器無(wú)關(guān)

  只要遵循約定的DLL接口規(guī)范和調(diào)用方式,用各種語(yǔ)言編寫的DLL都可以相互調(diào)用。譬如Windows提供的系統(tǒng)DLL(其中包括了WindowsAPI),在任何開(kāi)發(fā)環(huán)境中都能被調(diào)用,不在乎其是Visual BasicVisual C++還是Delphi

 

  (2)動(dòng)態(tài)鏈接庫(kù)隨處可見(jiàn)

  我們?cè)?span lang="EN-US">Windows目錄下的system32文件夾中會(huì)看到kernel32.dlluser32.dllgdi32.dllwindows的大多數(shù)API都包含在這些DLL中。kernel32.dll中的函數(shù)主要處理內(nèi)存管理和進(jìn)程調(diào)度;user32.dll中的函數(shù)主要控制用戶界面;gdi32.dll中的函數(shù)則負(fù)責(zé)圖形方面的操作。

 

  一般的程序員都用過(guò)類似MessageBox的函數(shù),其實(shí)它就包含在user32.dll這個(gè)動(dòng)態(tài)鏈接庫(kù)中。由此可見(jiàn)DLL對(duì)我們來(lái)說(shuō)其實(shí)并不陌生。

 

  (3)VC動(dòng)態(tài)鏈接庫(kù)的分類

  Visual C++支持三種DLL,它們分別是Non-MFC DLL(非MFC動(dòng)態(tài)庫(kù))、MFC Regular DLLMFC規(guī)則DLL)、MFC Extension DLLMFC擴(kuò)展DLL)。

 

MFC動(dòng)態(tài)庫(kù)不采用MFC類庫(kù)結(jié)構(gòu),其導(dǎo)出函數(shù)為標(biāo)準(zhǔn)的C接口,能被非MFCMFC編寫的應(yīng)用程序所調(diào)用;MFC規(guī)則DLL 包含一個(gè)繼承自CWinApp的類,但其無(wú)消息循環(huán);MFC擴(kuò)展DLL采用MFC的動(dòng)態(tài)鏈接版本創(chuàng)建,它只能被用MFC類庫(kù)所編寫的應(yīng)用程序所調(diào)用。

 

. Non-MFC DLL的編寫步驟:

1、新建項(xiàng)目-> win32項(xiàng)目->應(yīng)用程序設(shè)置->應(yīng)用程序類型: 選擇DLL,完成。

2、添加變量、函數(shù)或類到庫(kù)中,例如:

/* 文件名:xxx.h */
#ifndef XXX_H
#define XXX_H

 

#ifndef LIB_EXPORTS

#define LIB_API __declspec(dllimport)

#else

#define LIB_API __declspec(dllexport)

#endif

 

extern "C" int LIB_API max(int x, int y);
#endif

/* 文件名:xxx.cpp */

#include "xxx.h"

int add(int x, int y)

{

 return x > y ? x y;

}

    在動(dòng)態(tài)庫(kù)的工程屬性->C/C++->預(yù)處理器->預(yù)處理器定義里,添LIB_EXPORTS。 編譯。

    3. 創(chuàng)建另外一個(gè)工程,來(lái)調(diào)用該庫(kù)

    調(diào)用DLL有兩種方式:

    (1)   顯式調(diào)用

typedef int (*pDllFunc)(int , int);

 

HINSTANCE hDll = LoadLibrary(_T("xxx.dll"));

pDllFunc pMax = NULL;

if (hDll) {

        pMax = (pDllFunc)GetProcAddress(hDll, "max");

        if (pMax) {

            std::cout << pMax(21, 22) << std::endl;

}

}

 

if (hDll) {

FreeLibrary(hDll);

}

 

    (2) 隱式調(diào)用

    首先,包含該庫(kù)的頭文件

    其次,鏈接動(dòng)態(tài)庫(kù),把保存庫(kù)的目錄添加到工程屬性->連接器->常規(guī)->附加庫(kù)目錄,在工程屬性->連接器->輸入->附加依賴項(xiàng)添加庫(kù)的lib文件名 或者在程序中用

#pragma comment(lib, ".\\lib\\xxx.lib")添加(若已經(jīng)添加庫(kù)的目錄,就不需要相當(dāng)路徑,直接寫lib文件名“xxx.lib)

    然后就可以直接用變量,函數(shù)或者類了。

    注意:隱式調(diào)用和顯示調(diào)用的區(qū)別:

    隱式調(diào)用的方法比較方便,但DLL改變后,應(yīng)用程序須從新編譯。并且,所有所調(diào)用的DLL在應(yīng)用程序加載的同時(shí)被加載到內(nèi)存中,當(dāng)應(yīng)用程序調(diào)用的DLL比較多時(shí),裝入的過(guò)程十分慢。顯式調(diào)用則比較靈活,但比較麻煩.

    二 MFC Regular DLL 的編寫步驟:

    1、新建項(xiàng)目->MFC DLL->應(yīng)用程序設(shè)置->選擇DLL類型,完成。

    注意:靜態(tài)鏈接MFC DLL和共享MFC DLL的區(qū)別:靜態(tài)鏈接把程序中要用的在MFC DLL里的東西全部編譯到創(chuàng)建的DLL中,體積會(huì)大一點(diǎn),但可以在沒(méi)有裝MFC的機(jī)器上運(yùn)行;通過(guò)共享創(chuàng)建的DLL體積小,但在沒(méi)有安裝MFC的機(jī)器上有可能不能運(yùn)行,因?yàn)闆](méi)有相應(yīng)的庫(kù)。

    2、其他步驟和創(chuàng)建Non-MFC DLL差不多。

    三 MFC擴(kuò)展DLL

    這里有比較詳細(xì)的介紹http://tech.163.com/06/0316/10/2CB2S3HP0009159F.html

posted @ 2010-08-29 10:12 長(zhǎng)風(fēng) 閱讀(1912) | 評(píng)論 (0)編輯 收藏

2010年7月21日

MFC改變控件顏色

MFC應(yīng)用程序中,要改變控件的背景色可通過(guò)重載OnCtlColor()函數(shù)來(lái)實(shí)現(xiàn)。方法是在該函數(shù)中設(shè)置所需顏色后再返回一個(gè)畫刷句柄便可 重繪控件背景色。OnCtlColor()函數(shù)對(duì)于控件背景色的處理是通過(guò)捕捉相應(yīng)的控件消息來(lái)實(shí)現(xiàn)的。

常用的此類消息有:  
CTLCOLOR_DLG   對(duì)話框  
CTLCOLOR_EDIT   編輯框
CTLCOLOR_LISTBOX   列表框  
CTLCOLOR_MSGBOX   消息框
CTLCOLOR_SCROLLBAR   滑動(dòng)條
CTLCOLOR_STATIC   靜態(tài)文本框、矩形等。

主要有三步:
1. 聲明消息響應(yīng)函數(shù)
//{{AFX_MSG(CMyDialog)
afx_msg   HBRUSH   OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor);
……
//}}AFX_MSG

DECLARE_MESSAGE_MAP()  

2. 實(shí)現(xiàn)消息響應(yīng)函數(shù)
以編輯框舉例:
HBRUSH   CMyDialog::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor) 
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    CtlColor(pDC, pWnd, nCtlColor);
    if(nCtlColor == CTLCOLOR_EDIT && pWnd->GetDlgCtrlID() == IDC_EDIT1)
    {
        pDC
->SetTextColor(RGB(0,0,255));
        pDC
->SetBkColor(RGB(255,0,0));//設(shè)置文本背景色
        pDC->SetBkMode(TRANSPARENT);//設(shè)置背景透明
        hbr = ::CreateSolidBrush(RGB(255,0,0));
    }
    return hbr;
}

3. 添加消息映射
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
    ON_WM_CTLCOLOR()
END_MESSAGE_MAP()

注意:此方法不適用于按紐控件。

posted @ 2010-07-21 16:49 長(zhǎng)風(fēng) 閱讀(3846) | 評(píng)論 (0)編輯 收藏

2010年7月19日

vc6 和 vs2005 combobox 下拉列表高度的區(qū)別

vc6下拉列表的高度有三種方法更改:
1. 在.RC界面先點(diǎn)擊下拉按鈕,然后拖動(dòng)虛框,虛框即是下拉列表的大小;
2. 在.rc文件里直接修改combobox的高度;
3. 創(chuàng)建完combobox后,調(diào)用movewindow修改。

vs2005和vc6略有不同:
vc6的三種方法都可以使用,只不過(guò)設(shè)置的高度小于顯示30個(gè)item的高度時(shí),會(huì)默認(rèn)高度為30個(gè)item的高度。

posted @ 2010-07-19 10:54 長(zhǎng)風(fēng) 閱讀(1199) | 評(píng)論 (0)編輯 收藏

2010年7月14日

vc6編譯問(wèn)題

公司的產(chǎn)品有兩個(gè)版本,一個(gè)用vs2005編譯,一個(gè)用vc6編譯。
新增了個(gè)功能,用vs2005編譯后沒(méi)問(wèn)題,用vc6編譯的就不好使。我的機(jī)器上沒(méi)有裝vc6,所以裝vc6調(diào)試。
裝完后編譯出現(xiàn)以下問(wèn)題:
NOTE: WINVER has been defined as 0x0500 or greater which enables
Windows NT 5.0 and Windows 98 features. When these headers were released,
Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.
For this release when WINVER is defined as 0x0500 or greater, you can only
build beta or test applications. To build a retail application,
set WINVER to 0x0400 or visit http://www.microsoft.com/msdn/sdk
to see if retail Windows NT 5.0 or Windows 98 headers are available.
See the SDK release notes for more information.
一番google,原來(lái)是SDK沒(méi)有更新。
然后更新SDK,給vc6打補(bǔ)丁。

然后繼續(xù)編譯,出現(xiàn)頭文件找不到。添加環(huán)境變量,解決之。

新添加的環(huán)境變量只對(duì)新建的進(jìn)程有效,所以必須重啟vc6才好使。

posted @ 2010-07-14 17:18 長(zhǎng)風(fēng) 閱讀(506) | 評(píng)論 (0)編輯 收藏

僅列出標(biāo)題  

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(2)

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区二区视频在线观看| 欧美电影在线观看| 免费毛片一区二区三区久久久| 一区二区三区四区五区精品视频 | 亚洲六月丁香色婷婷综合久久| 欧美国产日韩xxxxx| 久久亚洲私人国产精品va| 老色鬼精品视频在线观看播放| 媚黑女一区二区| 亚洲第一精品夜夜躁人人爽| 久久噜噜噜精品国产亚洲综合 | 日韩一级成人av| 99在线|亚洲一区二区| 日韩网站在线| 久久综合色8888| 欧美大片在线影院| 欧美二区在线看| 亚洲精品极品| 亚洲免费影视| 久久综合色影院| 欧美色另类天堂2015| 国产一区二区精品| av成人动漫| 久久在线免费观看视频| 亚洲麻豆国产自偷在线| 欧美一区二区三区日韩视频| 久久亚洲欧洲| 国产人成精品一区二区三| 亚洲国内精品| 久久av一区二区三区亚洲| 亚洲日本va午夜在线影院| 亚洲一区国产一区| 欧美69视频| 国内成+人亚洲| 亚洲一区在线播放| 欧美成人一二三| 亚洲欧美自拍偷拍| 欧美日韩无遮挡| 亚洲精品国产系列| 榴莲视频成人在线观看| 亚洲一区美女视频在线观看免费| 另类综合日韩欧美亚洲| 国产日韩精品一区二区三区| 亚洲免费av观看| 欧美 日韩 国产一区二区在线视频 | 欧美国产日韩免费| 性做久久久久久久久| 欧美日韩天天操| 亚洲精品九九| 欧美高清一区| 久久婷婷丁香| 在线免费观看视频一区| 久久久久久久久岛国免费| 亚洲视频视频在线| 欧美日韩色综合| 在线视频一区观看| 日韩亚洲视频在线| 欧美午夜无遮挡| 亚洲欧美日韩一区二区在线| 日韩视频在线播放| 欧美午夜激情视频| 亚洲欧美日韩另类精品一区二区三区| 亚洲免费大片| 国产精品久久久久久久午夜| 亚洲综合第一| 亚洲欧美日韩一区在线| 国产精品日本| 久久精品国产清高在天天线| 亚洲欧美中文字幕| 国语自产在线不卡| 欧美激情综合| 欧美日韩人人澡狠狠躁视频| 最新国产乱人伦偷精品免费网站| 蜜臀va亚洲va欧美va天堂| 久久人人爽人人爽爽久久| 亚洲成色999久久网站| 欧美福利小视频| 欧美成人一区二区在线| 亚洲美女视频网| 亚洲最快最全在线视频| 国产精品久久网站| 久久久午夜电影| 免费视频最近日韩| 宅男精品视频| 欧美亚洲视频在线观看| 亚洲大片在线| 亚洲理伦电影| 国产亚洲一区在线| 欧美sm极限捆绑bd| 欧美喷潮久久久xxxxx| 亚洲免费在线| 久久综合给合久久狠狠色| 一本久道综合久久精品| 亚洲在线观看视频网站| 亚洲国产精品久久| 亚洲视频一二三| 亚洲欧洲精品天堂一级| 亚洲一区二区三区免费观看| 亚洲第一搞黄网站| 一区二区三区久久久| 一区福利视频| 99热在这里有精品免费| 国内精品久久久久伊人av| 亚洲欧洲精品一区二区三区 | 欧美色另类天堂2015| 麻豆久久久9性大片| 欧美特黄一级| 欧美高清视频www夜色资源网| 欧美视频第二页| 毛片一区二区| 国产精品日韩精品欧美精品| 亚洲第一网站| 一区二区视频在线观看| 午夜视频一区| 亚洲自拍偷拍一区| 欧美日韩国产精品成人| 免费欧美日韩| 国语自产精品视频在线看一大j8 | 亚洲精品国产精品乱码不99| 欧美在线播放一区二区| 午夜精品久久久久影视| 欧美激情在线| 亚洲成人自拍视频| 久久九九国产精品| 欧美日韩高清一区| 欧美不卡在线| 一区二区三区亚洲| 欧美在线91| 久久精品国产免费| 国产麻豆日韩欧美久久| 在线观看欧美日韩国产| 激情欧美一区二区三区| 久久成人综合视频| 亚洲欧美成aⅴ人在线观看| 欧美电影在线免费观看网站| 欧美99在线视频观看| 狠狠色2019综合网| 性亚洲最疯狂xxxx高清| 欧美一区国产二区| 国产欧美一区二区白浆黑人| 亚洲天堂黄色| 欧美在线观看www| 国产精品丝袜91| 亚洲欧美在线高清| 久久大香伊蕉在人线观看热2| 国产精品久久久久久久久久久久久| 亚洲精品一区二区三区四区高清| 9i看片成人免费高清| 欧美日韩亚洲高清| 一本色道久久综合亚洲91| 亚洲伊人第一页| 国产精品一区二区你懂得| 亚洲欧美在线一区二区| 久久伊人亚洲| 亚洲毛片在线观看.| 欧美日韩高清在线播放| 在线一区二区日韩| 久久九九免费| 亚洲丶国产丶欧美一区二区三区| 嫩草成人www欧美| 亚洲乱码国产乱码精品精| 亚洲天堂av图片| 国产主播一区二区| 免费成人av| 一本色道久久88综合亚洲精品ⅰ| 久久国产欧美| 亚洲精品视频在线观看免费| 国产精品久久久91| 久久综合五月| 一区二区三区精品视频| 麻豆精品一区二区综合av| 亚洲精品一区二区三区四区高清 | 美国成人直播| 99re这里只有精品6| 国产精品女主播| 美女视频网站黄色亚洲| 99国产精品视频免费观看| 久久久久一区二区三区四区| 亚洲人成网站在线观看播放| 国产精品激情偷乱一区二区∴| 久久激五月天综合精品| 99综合电影在线视频| 免费看成人av| 欧美诱惑福利视频| 99国产精品久久久久久久成人热| 国产一区二区三区av电影| 欧美日韩国产成人高清视频| 久久久久久穴| 欧美一区二区三区免费观看视频| 亚洲乱码精品一二三四区日韩在线| 久久午夜激情| 欧美亚洲在线播放| 在线视频亚洲一区| 日韩一本二本av| 亚洲国产一区二区三区a毛片| 国产精品私房写真福利视频| 欧美日韩精品欧美日韩精品一| 麻豆久久婷婷| 久久综合伊人77777| 久久精品免费电影|