C++中的强制类型转换
admin | win32 | 2014-05-19
标准c++中主要有四种强制转换类型运算符:
const_cast,reinterpret_cast,static_cast,dynamic_cast等等。
1)static_cast<T*>(a)
将地址a转换成类型T,T和a必须是指针、引用、算术类型或枚举类型。
表达式static_cast<T*>(a), a的值转换为模板中指定的类型T。在运行时转换过程中,不进行类型检查来确保转换的安全性。
... [阅读全文]
高精度多媒体时钟应用类
admin | win32 | 2014-05-16
C++
//多媒体高精度时钟应用类
/////////////////////////////////////////////
#include <MMSYSTEM.H>
#pragma comment(lib, "WINMM.LIB")
class CHighResolutionTimer
{
typedef void (*TIMERCALLBACK)(DWORD);
private:
DWORD m_dwUser;
MMRESULT m_nIDTimer;
UINT m_uDelay;
TIMERCALLBACK m... [阅读全文]
timer 精度
admin | win32 | 2014-05-15
C++
#include <windows.h>
static int g_nCount = 0;
#define Timer_Once_Time (1000/18)
DWORD WINAPI threadFunc (LPVOID pArg)
{
Sleep(100*Timer_Once_Time);
printf("%d",*((int*)pArg));
return 0;
}
void CALLBACK TimerProc(HWND hwnd, UINT message, UINT timerID, DWORD time)
{
g_nCoun... [阅读全文]
软件离线超时
admin | win32 | 2014-05-12
C++
bool CRegisterManager::UpdateOfflineMaturity()
{
CTime ct = CTime::GetCurrentTime();
CTime ct2 = CTime(1988,9,24,0,0,0,-1);
CTimeSpan timeSpan = ct - ct2;
int iCurrent = timeSpan.GetDays()+30; //离线激活时间设置为30
RegConfig reg_ex(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Expl... [阅读全文]
进程与线程的一个简单解释
admin | win32 | 2014-05-12
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。
最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。
1.
计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。
2.
假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停... [阅读全文]
forVS.foreach那个性能更高,为什么,怎样选择
admin | win32 | 2014-05-07
http://www.360doc.com/content/10/0907/09/2714412_51770825.shtml
http://blogs.msdn.com/kevin_ransom/archive/2004/04/19/116072.aspx
[阅读全文]
Activex、OLE、COM、OCX、DLL之间有什么区别?
admin | win32 | 2014-04-18
熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。组件看起来像对象... [阅读全文]
C++ 播放远程音乐
admin | win32 | 2014-04-02
C++
#include <Windows.h>
#include <Mmsystem.h>
#pragma comment(lib, "comsupp.lib")
#pragma comment(lib, "Winmm.lib")
MCI_OPEN_PARMS mciOpen = {0, 0, L"mpegvideo", 0, 0};
bool PlayAudio(const CString& strUrl)
{
/*for playing MP3*/
mciSendCommand( mciOpen.wDeviceID, MCI_... [阅读全文]
C++ Execute
admin | win32 | 2014-04-01
C++
BOOL Execute(LPCTSTR lpszProcessName, BOOL bForceAdmin, BOOL bWaitProcess)
{
BOOL bRet = FALSE;
PROCESS_INFORMATION processInfo;
STARTUPINFO si = {sizeof(STARTUPINFO)};
CString strCmdLine;
DWORD dwErrCode = 0;
HANDLE hProcess = NULL;
... [阅读全文]
让 COM 脱离注册表
admin | win32 | 2014-03-28
引言
在上一篇《在 DLL 中加入第二个 COM 类》的“单用户注册”一节中,我们曾提到脱离注册表依赖一事,现在我们来把这事儿给办了。
注册
我们在之前支持了“regsvr32 /n /i:user COMProvider.dll”这一注册命令。这一注册命令给了我们一定的扩展余地。从ATL默认的代码来看,对于DllInstall,目前已定义的命令行参数似乎只有user,于是我们可以定义... [阅读全文]