development material collections
ҽ
л
ҵBlog
¹鵵...
·...
ͳ...
վ...
Դ
===========================================================
dotner Framwork 汾
===========================================================
.NET 3.0=.NET 2.0 Service Pack 1 with WCF, WPF, WF and WCS
.NET 3.5=.NET 2.0 Service Pack 2 with LINQ, C# 3.0, WCF 2.0, WPF 2.0, WF 2.0 and ASP.NET Ajax

guan98413 :2007.11.23 09:46 ::: ( C# ) ::Ķ:(128451) :: (10) :: (0)
===========================================================
ATM
===========================================================

ATMҪУ
ATMCCָClient˵װATM豸ϵ
ATMPPָƽ̨(Platform)װеģҪATM׵תȹ
ATMVVָView/Monitor2¥˵ĴATMPATMCȡ,ʵֶ豸Чʵʱء
ATMAAָAnalysis׷ҵܶATMVʵֵIJݵATMA


guan98413 :2007.11.08 09:17 ::: ( һ ) ::Ķ:(37307) :: (0) :: (0)
===========================================================
Sandcastle Help File Builderʹע
===========================================================

Sandcastle Help File Buildervs2005xmlעɳ˵ĵĹкܷ㣬ǰ󲿷ֶʹ

NDoc,NDoc֧dotnet2.0˵ҪԱѾάdotnet2.0ǿʹ

microsoftSandcastledocumentSandcastleҪǻconsoleģе㸴ӣʺϳ

ѧʹãҺSandcastle Help File Builderͼλĵɹߣʹʹ߼˺ö๤
ʹSandcastle Help File BuilderһЩϸҪע⣺
1ʹSandcastle Help File Builder֮ǰҪȷѾװSandcastleHTML Help Workshop
2HTML Help Workshopİװ·dzĬϰװ·߾ΪԶ˰װ·

ʹSandcastle Help File BuilderʱһЩرwindows formĵʱ


3Sandcastle Help File Builder PathsѡµһЩã
HtmpHelp1xComplierPath, outputPath, SandcastlePath
עSandcastleHTML Help WorkshopSandcastle Help File Builderصַͨgoogleصַ

HTML Help WorkshopĬϰװ·ӦC:Program FilesHTML Help Workshop

ʹSandcastle Help File Builderʲôʣԡ߾


guan98413 :2007.11.07 14:49 ::: ( һ ) ::Ķ:(56337) :: (3) :: (0)
===========================================================
кܾһ仰
===========================================================

ǰпһ仰,ƿ˵Ǻܾ.
һάõϵͳӦѭԭ",նԭ޸ģŶԭչ

ϣλ,رǴƵ.͵,Ӧö仰.
,ϸƷƷ仰,dz!


guan98413 :2007.10.22 11:35 ::: ( һ ) ::Ķ:(14503) :: (0) :: (0)
===========================================================
Visual Studio 2005ò(ת)
===========================================================
Visual Studio 2005 ΪǴµı飬ṩ˴ղڵĽ ǣҲԿһֱΧVisual StudioֹܵIJΪVisual Studio µĹܻ߶ԭйܽŻѾΪ߲ȱٵĹߡVisual Studio 2005 ոշãԱǾѡ Visual Stuio2003 оͬʱѾVisual Studio 2005 ֵ֧IJҲӭͶƼϲIJǻ᲻ϵĸ£ϣ޵ȫVisual Studio ǵóҲµķ֡

ƣReflector.FileDisassembler

ߣLutz Roeder

°汾Reflector.FileDisassembler 4.1.85.0

ڣ 2005-10-23

飺 Reflector.FileDisassemblerһͷԷ򼯲չʾܡReflector.FileDisassembler򼯵ͷԷЩͷɵ Microsoft м (MSIL)ȣ

ƣCodeSmith

ߣEric J. Smith

°汾CodeSmith 3.1

ڣ2005-8-11

˴

飺 CodeSmith һֻģĴɹߣʹ ASP.NET ﷨͵Ĵıɹ߲ͬCodeSmith Ҫ㶩ضӦóƻϵṹ CodeSmith ɰ򵥵ǿͼϺӦóڵκζ

ƣNDoc

ߣSourceForge

°汾NDoc 1.3.1

ڣ2005-1-25

˴

飺 дĵϼһηNDoc ܹʹ÷򼯣ʹô C# XML עɵ XML ԶΪĵϣ°汾ṩ˸Ե֧֡

ƣNUnit

ߣMichael C. Two, Charlie Poole

°汾NUnit version 2.2.3

ڣ2005-11-15

˴

飺 NUnit Ϊ .NET ɵĿԴ뵥ԪԿܡNUnit ʹϲԱдԣӶӦóضܡ

ƣFxCop

ߣMicrosoft

°汾FxCop 1.32

ڣ2005-7-25

˴

飺.NET ܷdzǿζпܴӦó򣬵ҲͬڴʳĿܡFxCop ڴõӦóĹ֮һͨ򼯣ʹ಻ͬĹǷЩ

ƣNAnt

ߣGerry Shaw ,Ian MacLean,Scott

°汾NAnt 0.85 (.net2.0beta)

ڣ2005-04-18

˴

飺NAnt һ .NET ɹߣʹΪĿɹ̱÷dzסNAnt ʹɽļ NUnit ԡ͵ʼȵȡ

ƣGhostDoc

ߣRoland Weigelt

°汾GhostDoc 1.9.1

ڣ2005-11-20

˴

飺GhostDoc һVisual Studio XML ĵע NDoc ԰ԶɴᷳƵ

ƣVault

ߣsourcegear

°汾Vault 3.1.5

ڣ2005-11-04

˴

飺һ.netƽ̨ĿVSS汾ƹ߲XML Web ServicesΪͨЭ.

ƣDragnet

ߣsourcegear

°汾Dragnet 1.0.5

ڣ2005-11-20

˴

飺ourceGear Dragnet һ񣩷͸ٵĹߡ


ע:ƪתhttp://blog.csdn.net/CQP/archive/2005/12/08/546761.aspx

guan98413 :2007.10.10 09:24 ::: ( C# ) ::Ķ:(11360) :: (1) :: (0)
===========================================================
οһvisual-style?
===========================================================

ĿҪһ,Ҳ˵һߵĹ߰,visual studio2005һ,ӵԺúã,˺ö,ڻһͷˮ.
visual-styleĶ,ɱҪõdocking,dockingѡȴеԥ,ʹc#Լȥʵ,dotnetmagic,ѡʹdotnetbar?ʹc#Լȥʵһʼͱ,ʲôҪԼͷĻտʲô.ѡdotnetmagic?ĿǰʹdotnetmagicҪԼдöʵ,е鷳,ĵDZȽȫ,ĵdotnetmagicṩsamplesӦÿԺܿ.dotnetbar?dotnetbarǺuiƿؼ,ҵۺܸ,ĵеǷȱ,tutorialsҲһЩܶƵ,һЩdotnetbarṩsamples,һؼŵǷ״Ժܺ,ʹҪдĴܱȽ.
ۺϿ,׼ʹdotnetbar,ȻһЩʱȥоЩsamples.
ⷽϻ߿˵̳̫,Ҳûһ,ʱĻ,׼ԼʹõһЩд,ϣλѶཻ.


guan98413 :2007.09.28 15:28 ::: ( C# ) ::Ķ:(1511) :: (0) :: (0)
===========================================================
ȡBSTR
===========================================================

ȡBSTR
дCOMʱʹBSTR֪ͣBSTRʹõunicode룬һʹõ

ansi룬Ҫһת,ôתȷأ
ᳫʹWideCharToMultiByteзֶ0x00--0x80֮ݶת

0x80תʱͻ
ֽĿеһδժ¼ϣܶⷽ湤
ConvertBSTR2Char(BSTR bstr, char * pChar, int * pLen)
{
char szConverted[8192];
memset(szConverted, 0, sizeof(szConverted));

char szTmp[3];
memset(szTmp, 0, sizeof(szTmp));

int iLen = *(int*)& ((char*)bstr)[-4];
int iConverted = 0;
int iIsTwo = 0;

for(int i = 0; i < iLen; i ++)
{
if (bstr[i] >= 0x80 && bstr[i] < 256)
{
szConverted[iConverted ++] = (char)bstr[i];
}
else
{
iIsTwo = WideCharToMultiByte(CP_ACP,0,&bstr[i],1,(char *)

szTmp,3,NULL,NULL);

if(iIsTwo == 1){
szConverted[iConverted ++] = szTmp[0];
//AfxMessageBox("Ӣ");
}else{
szConverted[iConverted ++] = szTmp[0];
szConverted[iConverted ++] = szTmp[1];
//AfxMessageBox("");
}
}
}

*pLen = iConverted;
memcpy(pChar, szConverted, iConverted);
}

дȽϼ򵥣ʲٶע͡


guan98413 :2007.09.06 15:05 ::: ( һ ) ::Ķ:(522) :: (0) :: (0)
===========================================================
windowsгԼָɱ
===========================================================

windowsгԼָɱ
1windowsг򷽷Բ·
1win.ini
2ͨעעHKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Runµ
ַУԺչͨעȽϷ㣬Ϊdotnetƽ̨ƵxmlʽļʹiniøʽעIJȻѡ񣬱Ͼwindowsµĺöͨעõġ
2ָɱ̿ͨϵͳ
CreateToolhelp32Snapshot(), Process32First(), OpenProcess(), TerminateProcess(), Process32Next()ȣ庯˵ԱĺMSDN˵ĵҪעǣʹǰ#include <tlhelp32.h> // for CreateToolhelp32Snapshot
3ͨһƬչvcʹ
char szFileName[100];
memset(szFileName, 0, sizeof(szFileName));

GetModuleFileName(NULL, szFileName, sizeof(szFileName));

AfxMessageBox(szFileName);

//
HKEY hKey = NULL;
long lErrorCode = -1;
// ÿԶ
hKey = NULL;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SoftWare\Microsoft\Windows\CurrentVersion\Run", NULL, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)
{
RegSetValueEx(hKey, "KillThread", 0, REG_SZ, (BYTE *)szFileName, strlen(szFileName));
}
//ϴʵ˶עĸģǸóܹʵwindowsУ

HANDLE hSnapShot = NULL;
char szThreadName[100];
memset(szThreadName, 0, sizeof(szThreadName));

// get the thread name
::GetDlgItemText(this->m_hWnd, IDC_EDIT_THREADNAME, szThreadName, sizeof(szThreadName));
AfxMessageBox(szThreadName);
//strcpy(szThreadName, "SimSIUXFS3.EXE");

hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapShot == NULL)
{
return;
}

//LONG nProcess = 0;
PROCESSENTRY32 prosInfo;
prosInfo.dwSize = sizeof(prosInfo);
BOOL bStatus = Process32First(hSnapShot, &prosInfo);
while (bStatus)
{
CString scTmp = prosInfo.szExeFile;
if(scTmp.Compare(szThreadName) == 0)
{
DWORD dwProcessID = prosInfo.th32ProcessID;
HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessID);
::TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
}
bStatus = Process32Next(hSnapShot, &prosInfo);
}

ϴչͨkillָ̡

4ͨϴ룬ǿһ£һʵֶԵǰϵͳһͳƣټһЩܣɺwindowsԴһߣǿøóǷԶУҪȡԶУֻҪͨRegDeleteKeyɾӦעͿԡҲǵϹܣʹãʧΪһ㡣


guan98413 :2007.08.09 14:45 ::: ( һ ) ::Ķ:(414) :: (0) :: (0)
===========================================================
ַеķǿɼַ(ַʽʾǿɼַ)ʾ
===========================================================

ʹc/c++ַʱɱĻõַķַʾ,,һЩַǷǿɼ,ôʾ?һDzð˽ơʮơƵȸָıʾʽ,ûй̶ĸʽ,ݸ˰ú͵ǰı̹淶ѡ.Ҳע⵽пܴڵ,Ĵ,ûʲô?
#include "stdafx.h"
#include <memory>

int main(int argc, char* argv[])
{
char szTmp[10];
memset(szTmp, 0, sizeof(szTmp));
memcpy(szTmp, "123/x00123", 7);

return 0;
}
ԭʵ:szTmpǰ(7)ֽڽиֵ,ǰͺֽڷֱ'1', '2', '3', 3ֽ(0ʼ)Ϊ0x00,Ĵ˳ͨô?
vc6뿴,ô?
error C2022: '291' : too big for character
ʲôԭ?ָô?
ԭַнʱ/x00123Ϊһַ,0x00123ʮƱʾ291,ô?ʵϿķ:
#include "stdafx.h"
#include <memory>

int main(int argc, char* argv[])
{
char szTmp[10];
memset(szTmp, 0, sizeof(szTmp));
memcpy(szTmp, "123/000123", 7);

return 0;
}
Ҫ䶯Dzð˽ʾ0x00,˳ͨ,Ϊʲô,ĵ.


guan98413 :2007.07.26 13:56 ::: ( һ ) ::Ķ:(368) :: (0) :: (0)
===========================================================
Calling ConventionǵĻ
===========================================================

ʹ microsoft visual C++д˿̫ܲעCalling Convention,ʹö̬(dll)̬(lib),ЩlibdlldzԲͬĿԱ,߳ԲͬĹ˾Ļܻһ,returnִԺȴͻȻĪ,³.ΪreturnԺ,debugеѶ,Ϊʲô?ָô?
ʵ,,Ӧüһproject setting,˶һproject setting--> c/c++ categoryеCalling ConventionǷһ!Ŀǰ:_cdecl* , _fastcall, _stdcall,MSĬϵ_cdecl*, һЩԱϲΪ_stdcall,õIJһҲɳҪԭ.õҪʵǶڶջά˭,߸DZԼά??òͬջά߾Ͳͬ,пɵߺͱͬʱȥջ,ɳ.
:_cdecl* , _fastcall, _stdcallöԳӰIJ֮ͬԲ鿴Ӧĵ.


guan98413 :2007.07.19 15:04 ::: ( һ ) ::Ķ:(320) :: (0) :: (0)
===========================================================
vcʵֽıļÿжַзָ
===========================================================

һĿжԷҪ:ӡӡָÿһдӡַ,ӡнֽ.ΪʵһҪº,˼·:ȽҪӡļҪ֯һʱļ,֯ļĹرҪע,Ӣĵʶʹ.
ֽ,ϣܶⷽʾ,ҲϣλԼĿ,.(Ŀǰδ쳣.)
TransformFile(const char * pSourceName, const char * pDesName, int iStringLen)
{
HANDLE hPtrFile = NULL;
hPtrFile = ::CreateFile(pSourceName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_READONLY,
NULL);
if(hPtrFile == INVALID_HANDLE_VALUE)
{
CloseHandle(hPtrFile);
hPtrFile = NULL;
}

if(hPtrFile != NULL)
{
DWORD dwPtrFileLen = ::GetFileSize(hPtrFile , NULL);
unsigned char *ptrFileData = new unsigned char[dwPtrFileLen + 2];
if(ptrFileData == NULL)
{
return -1; //ڴ治
}
else
{
memset(ptrFileData, 0, dwPtrFileLen + 2);
}

DWORD dwReadData = 0;

::ReadFile(hPtrFile, (LPVOID)ptrFileData, dwPtrFileLen, &dwReadData, NULL);

//Ŀļ
FILE * fDes;
fDes = fopen(pDesName, "w+");
if(fDes == NULL)
return -2; // can not create the des file

DWORD dwCurPos = 0; //Դļݵλ

//Դļеݰ趨глֺĿļ
unsigned char * pTmp;
pTmp = (unsigned char *)malloc(iStringLen + 2);
int iTmp = 0;

while(dwCurPos < dwReadData)
{
if(iTmp == 0)
memset(pTmp, 0, iStringLen + 2);

if(ptrFileData[dwCurPos] < 0x7F) //Ǻ
{
if(iTmp <= iStringLen - 1)
{
memcpy(&pTmp[iTmp], &ptrFileData[dwCurPos], 1);
iTmp ++;
dwCurPos ++;
}
else
{
//дĿļ
//Էָһеһַ0x0D 0x0A⴦
if(pTmp[iTmp -1] == 0x0D)
{
pTmp[iTmp - 1] = 0x00;
iTmp --;
fwrite(pTmp, iTmp , 1, fDes);
fflush(fDes);
fwrite("x0Dx0A", 2, 1, fDes);
fflush(fDes);
dwCurPos ++; //˵0x0A(window±ļ
//0x0D 0x0A ǽŵģдһ0x0Dϵͳ
//Զһ0x0D)

}
else if(pTmp[iTmp -1] == 0x0A)
{
fwrite(pTmp, iTmp , 1, fDes);
fflush(fDes);
}
else
{
fwrite(pTmp, iTmp , 1, fDes);
fflush(fDes);
fwrite("x0Dx0A", 2, 1, fDes);
fflush(fDes);
}

iTmp = 0;
}

}
else //
{
if(iTmp <= iStringLen - 2)
{
memcpy(&pTmp[iTmp], &ptrFileData[dwCurPos], 2);
iTmp = iTmp + 2;
dwCurPos = dwCurPos + 2;
}
else
{
//дĿļ
fwrite(pTmp, iTmp , 1, fDes);
fwrite("x0Dx0A", 2, 1, fDes);
fflush(fDes);
iTmp = 0;
}
}
}

//һдļ
fwrite(pTmp, iTmp + 1, 1, fDes);
fwrite("x0Dx0A", 2, 1, fDes);

//ͷԴ
fclose(fDes);
free(pTmp);
free(ptrFileData);
CloseHandle(hPtrFile);
hPtrFile = NULL;
}
return 0;
}


guan98413 :2007.07.18 09:17 ::: ( һ ) ::Ķ:(227) :: (0) :: (0)
===========================================================
c/vcַת
===========================================================

cvcдĹⲻҪһЩַת,ȽϳдANSIUNICODE,ߴUNICODEANSI,ת?ϱߵľ,ʱṩֱȽϳķ,ԼҪע
(1)׼cеת
Եmbstowcs
ԭΪ:size_t mbstowcs( wchar_t *wcstr, const char *mbstr, size_t count );
ͷļΪ:<stdlib.h>
ֵ֧IJϵͳΪ:ANSI, Win 95, Win NT
ʹתʱҪעǶڷӢΪԵĹҺ͵,ʹ֮ǰҪsetlocaleתַܲûϣõĽ
setlocale:
ԭΪchar *setlocale( int category, const char *locale );
ͷļ<locale.h>
ֵ֧IJϵͳΪ:ANSI, Win 95, Win NT
ڼĿʹãsetlocale( LC_ALL, "chs" );

ΪʲôһҪsetlocaleأ
ΪC/C++Ա׼жʱַΪ"C"ҲASCIIַһӼômbstowcsڹʱὫcstrַASCIIַΪһchsַὫÿһIJ2ASCIIתõĽǻγ4wchar_tַɵĴôβܹmbstowcsأڵmbstowcsת֮ȷĸmbstowcsĿǰcstrаchsַͨsetlocale( LC_ALL, "chs" )ɣҪעıӦóַ뷽ʽҪͨµsetlocale( LC_ALL, "C" )ԭͿԱ֤mbstowcsתʱcstrеĴĴתΪ2wchar_tַ4עת磬ллchemz

2vcеת
ԵMultiByteToWideChar
ԭΪ
int MultiByteToWideChar(
UINT CodePage, // code page
DWORD dwFlags, // character-type options
LPCSTR lpMultiByteStr, // address of string to map
int cchMultiByte, // number of bytes in string
LPWSTR lpWideCharStr, // address of wide-character buffer
int cchWideChar // size of buffer
);
Header: Declared in winnls.h.
Import Library: Use kernel32.lib.
ʹMultiByteToWideCharʱҪעǣCodePageCP_ACPԥַCP_ACPȽϳãdwFlagsMB_PRECOMPOSEDȽϳҪرעcchWideCharòҪʹwcslenõΪöϰʹñǰȽʼΪ0ҲһܺõıϰߣԱһЩҪĴ󣩣memsetΪ0ȻwcslenĻMultiByteToWideCharѾת˶ַΪָcchWideCharΪ0ԲlpWideCharStrκβһҪرע⣬óֲҪĴ

ۺַ˵MultiByteToWideCharmbstowcsǿ档

¼
codepageMSDN

Bit Code page Description
ANSI
0 1252 Latin 1
1 1250 Latin 2: Eastern Europe
2 1251 Cyrillic
3 1253 Greek
4 1254 Turkish
5 1255 Hebrew
6 1256 Arabic
7 1257 Baltic
8 1258 VietNam
9 - 15 Reserved for ANSI
ANSI and
OEM
16 874 Thai
17 932 Japanese, Shift-JIS
18 936 Chinese: Simplified charsPRC and Singapore
19 949 Korean Unified Hangeul Code (Hangeul TongHabHyung Code)
20 950 Chinese: Traditional charsHong Kong SAR, PRC and Taiwan
21 1361 Korean (Johab)
22 - 29 Reserved for alternate ANSI and OEM
30 - 31 Reserved by system.
OEM
32 - 46 Reserved for OEM
47 1258 VietNam
48 869 IBM Greek
49 866 MS-DOS Russian
50 865 MS-DOS Nordic
51 864 Arabic
52 863 MS-DOS Canadian French
53 862 Hebrew
54 861 MS-DOS Icelandic
55 860 MS-DOS Portuguese
56 857 IBM Turkish
57 855 IBM Cyrillic; primarily Russian
58 852 Latin 2
59 775 Baltic
60 737 Greek; former 437 G
61 708 Arabic; ASMO 708
62 850 Western European/Latin 1
63 437 US

setlocal ʱҲʹ·ʽ
// ʱ趨ǰ ANSI 룬VC ʽ
setlocale(LC_ALL, ".936");
.936е936codepage

// GCC иʽ
setlocale(LC_ALL, "zh_CN.GBK");


guan98413 :2007.06.20 10:43 ::: ( һ ) ::Ķ:(654) :: (0) :: (0)
===========================================================
ʹvc6Custom AppWizardԼWizardʱĶProject Setting÷
===========================================================

vc6ṩһǿĹ,Custom AppWizard,ͬʱAppWizard,programmerԶԼAppWizard(microsoftڲʵԭʵһdll),Ժܷظʹô.
ôͨmicrosoftCustom AppWizardŸλܺܿ촴һ򵥵(Ǻ,"Hello World")AppWizard,漰߼һ,:
ɵAppWizardܶproject settingеĸ(c/c++ preprocessor, linkֶЩlib)һЩõʱôʵ?Ƚϵһִת,ϣͬ,·.
(1)ҵ****Aw.cpp ļеvoid C*****AppWiz::CustomizeProject(IBuildProject* pProject).
(2)CustomizeProject޸
using namespace DSProjectSystem;

long lNumConfigs;
IConfigurationsPtr pConfigs;
IBuildProjectPtr pProj;
CString sTemp;
// Needed to convert IBuildProject to the DSProjectSystem namespace
pProj.Attach((DSProjectSystem::IBuildProject*)pProject, true);

pProj->get_Configurations(&pConfigs);
pConfigs->get_Count(&lNumConfigs);
//Get each individual configuration
for (long j = 1 ; j < lNumConfigs+1 ; j++)
{
_bstr_t varTool;
_bstr_t varSwitch;
IConfigurationPtr pConfig;
_variant_t varj = j;

pConfig = pConfigs->Item(varj);

varTool = "link.exe";//޸ѡ
varSwitch = "yourlib.lib";
pConfig->AddToolSettings(varTool, varSwitch, varj);
}
Ҫע:
˷ʹmicrosoftCOM,Ϊ˳ͨͷļ
#import "../Bin/IDE/devbld.pkg"
#include <ObjModel/bldauto.h>
#include <ObjModel/blddefs.h>
#include <ObjModel/bldguid.h>ϸMSDN


guan98413 :2007.06.15 15:56 ::: ( һ ) ::Ķ:(281) :: (0) :: (0)
===========================================================
vc6.0кܶຯ벻ͨĽ
===========================================================

vc6.0ок TryEnterCriticalSection ļ ͷļ ļDZ뻹dz⡣

ʱҪDzwindows趨windows汾ˡ

޸İ취ǣ

project--->setting --->c/c++--->Preprocessor definitions _WIN32_WINNT=0X0500 . 0x0500 ɱ䣩





stdafx.hļоͿˣ뱣֤ԼĻNTϵͳ

#define _WIN32_WINNT 0x0500


guan98413 :2007.05.04 17:53 ::: ( һ ) ::Ķ:(246) :: (0) :: (0)
===========================================================
error C2065: 'TryEnterCriticalSection' : undeclared identifier
===========================================================

error C2065: 'TryEnterCriticalSection' : undeclared identifierĽ
ͨͷļǰݽ
#ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x500
#endif


#include "stdafx.h"

#ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x500
#endif

#include "afxwin.h"
#include "winbase.h"


int main(int argc, char* argv[])
{
TryEnterCriticalSection(NULL);

printf("Hello World!n");
return 0;
}


guan98413 :2007.04.30 17:29 ::: ( һ ) ::Ķ:(173556) :: (12) :: (0)