• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ debuglog函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中debuglog函数的典型用法代码示例。如果您正苦于以下问题:C++ debuglog函数的具体用法?C++ debuglog怎么用?C++ debuglog使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了debuglog函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: alSourceQueueBuffers

void alSourceQueueBuffers(ALuint source, ALsizei n, ALuint* buffers)
{
    debuglog(LCF_OPENAL, "Pushing ", n, " buffers in the queue of source ", source);
    AudioSource* as = audiocontext.getSource(source);
    if (as == nullptr)
        return;

    std::lock_guard<std::mutex> lock(audiocontext.mutex);

    /* Check if the source has a static buffer attached */
    if (as->source == SOURCE_STATIC) {
        ALSETERROR(AL_INVALID_OPERATION);
        return;
    }

    as->source = SOURCE_STREAMING;

    /* TODO: Check that all buffers have the same format */
    for (int i=0; i<n; i++) {
        AudioBuffer* queue_ab = audiocontext.getBuffer(buffers[i]);
        if (queue_ab == nullptr)
            return;

        as->buffer_queue.push_back(queue_ab);
        debuglog(LCF_OPENAL, "  Pushed buffer ", buffers[i]);
    }
}
开发者ID:SebastienBenazet,项目名称:libTAS,代码行数:27,代码来源:openal.cpp


示例2: put_in_new_stream

/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  put_in_new_stream
 *    Parameter:  
 *  Description:  
 * =====================================================================================
 */
int
put_in_new_stream(int fd, BYTE *dest, int buf_len, int *cur_pos)
{
	int read_len = TS_LENGTH;

	//	数据缓冲区中剩余的数据不足一个TS_LENGTH
	if ((buf_len - *cur_pos) < TS_LENGTH && (buf_len - *cur_pos) > 1) 
	{
		memcpy(dest, (BYTE *) (dest + *cur_pos), buf_len - *cur_pos);
		read_len = read(fd, dest + buf_len - *cur_pos, *cur_pos);
		if (read_len == -1){
			debuglog("readerror");
			return READ_FAILURE;
		}
		*cur_pos = 0;
	} else {
		read_len = read(fd, dest, buf_len);
		if (read_len == -1){
			debuglog("readerror");
			return READ_FAILURE;
		}
		*cur_pos = 0;
	}
	return read_len;
}
开发者ID:gongweijun86,项目名称:codes,代码行数:32,代码来源:structure.c.c


示例3: MyWaitMessage

    HOOKFUNC BOOL WINAPI MyWaitMessage()
    {
        ENTER();
#ifdef EMULATE_MESSAGE_QUEUES
        bool firstWait = true;
        MessageQueue& mq = tls.messageQueue;
        while (true)
        {
            InternalizeMessageQueue();
            if (mq.queueStatus & (~mq.queueStatusAtLastGet) & QS_ALLEVENTS)
                break;
            //		Sleep(5); // TEMP (should probably wait on a custom event instead ... or not)
            if (firstWait)
            {
                firstWait = false;
                debuglog(LCF_MESSAGES | LCF_WAIT, __FUNCTION__ " started waiting.\n");
            }

            // hack
            if (tasflags.messageSyncMode != 0)
                detTimer.GetTicks(TIMETYPE_CRAWLHACK); // potentially desync prone (but some games will need it) ... moving it here (on no-result) helped sync a bit though... and the problem that happens here is usually caused by GetMessageActionFlags being incomplete
        }
        if (!firstWait)
            debuglog(LCF_MESSAGES | LCF_WAIT, __FUNCTION__ " finished waiting.\n");
        TrackMessageQueueStatusChange(mq, WM_NULL, 0);
        return TRUE;
#else
        //return WaitMessage();
        return TRUE; // I'm not sure what else I can do that's deterministic... (TODO: if the windows message queue is emulated then this can be made more accurate)
#endif
    }
开发者ID:Scepheo,项目名称:Hourglass-Resurrection,代码行数:31,代码来源:waithooks.cpp


示例4: HotkeysRegister

/* Thread safe - doesn't care about the lock */					
int HotkeysRegister(HWND hwnd, WORD ManSync, WORD OperModeSwitch) {
	UINT ManSyncModifiers = 0;
	UINT OperModeSwitchModifiers = 0;
	UINT ManSyncVk;
	UINT OperModeSwitchVk;

	/* Perform conversion of the format we got from HKM_GETHOTKEY
	   To the format needed by RegisterHotkey() */
	if (HOTKEYF_ALT & HIBYTE(ManSync))
		ManSyncModifiers |= MOD_ALT;
	if (HOTKEYF_CONTROL & HIBYTE(ManSync))
		ManSyncModifiers |= MOD_CONTROL;
	if (HOTKEYF_SHIFT & HIBYTE(ManSync))
		ManSyncModifiers |= MOD_SHIFT;
	ManSyncVk = LOBYTE(ManSync);
	
	if (HOTKEYF_ALT & HIBYTE(OperModeSwitch))
		OperModeSwitchModifiers |= MOD_ALT;
	if (HOTKEYF_CONTROL & HIBYTE(OperModeSwitch))
		OperModeSwitchModifiers |= MOD_CONTROL;
	if (HOTKEYF_SHIFT & HIBYTE(OperModeSwitch))
		OperModeSwitchModifiers |= MOD_SHIFT;
	OperModeSwitchVk = LOBYTE(OperModeSwitch);
	
	if(!(RegisterHotKey(hwnd, 443, ManSyncModifiers, ManSyncVk)))
		debuglog(DEBUG_ERROR,"Failed registering manual sync hotkey\n");
		
	if(!(RegisterHotKey(hwnd, 444, OperModeSwitchModifiers, OperModeSwitchVk)))
		debuglog(DEBUG_ERROR,"Failed registering mode switch hotkey\n");	
	
	return 1;
}
开发者ID:mastertheknife,项目名称:FSTimeSync,代码行数:33,代码来源:main.c


示例5: eps_heap_usage_end

void
eps_heap_usage_end(void)
{
	debuglog(("============================================================="));
	debuglog(("HEAP USAGE : max(%d bytes) leak(%d bytes)", maxusage, curusage));
	debuglog(("=============================================================")); 
}
开发者ID:vaurelios,项目名称:epson-inkjet-printer-filter,代码行数:7,代码来源:memory.c


示例6: decode_PAT_program

int decode_PAT_program(byte* byteptr, PROGRAM_MAP* program_map, int this_section_length) {
	byte* b = byteptr;
	int l = this_section_length;

	int pnum = PAT_PROGRAM_NUMBER(b);
	int re = PAT_PROGRAM_RESERVED(b);
	int pid = PAT_PMT_PID(b);

	program_map->program_number = pnum;
	program_map->pmt_PID = pid;
	program_map->reserved = re;
/*

	printf("program number:%d\t", pnum);
	printf("reserved:%d\t",re);
	printf("pid:0x%04x\n",pid);
*/
	debuglog("program number:%d\t", pnum);
	debuglog("reserved:%d\t",re);
	debuglog("pid:0x%04x\n",pid);


	set_pmt(pid,pnum,&pidlist);

	b += 4;
	l -= 4;
	if(b < b + l){
		program_map->next_program_map = (PROGRAM_MAP*)(malloc(sizeof(PROGRAM_MAP)));
		memset(program_map->next_program_map, 0, sizeof(PROGRAM_MAP));
		decode_PAT_program(b, program_map->next_program_map, l);
	}

	return (this_section_length);
}
开发者ID:gongweijun86,项目名称:simplepg,代码行数:34,代码来源:pat.c


示例7: drop_privileges

static bool drop_privileges(void)
{
    bool success = false;
    struct passwd  pwd;
    struct passwd* result = 0;
    char buf[GETPWNAM_BUFLEN];

    memset(&buf, 0, sizeof buf);

    (void)getpwnam_r("user", &pwd, buf, GETPWNAM_BUFLEN, &result);
    if (!result) {
        (void)getpwnam_r("nobody", &pwd, buf, GETPWNAM_BUFLEN, &result);
    }
    if (!result) {
        debuglog("tempreaper: unable to retrieve passwd entry");
        goto out;
    }

    if (setgid(pwd.pw_gid) != 0) {
        debuglog("tempreaper: setgid() failed with pw_gid %i (%m)", pwd.pw_gid);
        goto out;
    }
    if (setuid(pwd.pw_uid) != 0) {
        debuglog("tempreaper: setuid() failed with pw_uid %i (%m)", pwd.pw_uid);
        goto out;
    }

    success = true;

out:
    return success;
}
开发者ID:faenil,项目名称:dsme,代码行数:32,代码来源:tempreaper.c


示例8: MySetWindowLongW

HOOKFUNC LONG WINAPI MySetWindowLongW(HWND hWnd, int nIndex, LONG dwNewLong)
{
	debuglog(LCF_WINDOW|LCF_FREQUENT, __FUNCTION__ "(%d, 0x%X) called on 0x%X.\n", nIndex, dwNewLong, hWnd);
	if(nIndex == GWL_WNDPROC)
	{
		// the game is trying to change this window's procedure.
		// since we need it to stay replaced with our own winproc,
		// update our pointer to the original winproc instead.
		LONG rv = MyGetWindowLongW(hWnd, nIndex);
		debuglog(LCF_WINDOW|LCF_FREQUENT, __FUNCTION__ "hwndToOrigHandler[0x%X] = 0x%X.\n", hWnd, dwNewLong);
		debuglog(LCF_WINDOW|LCF_FREQUENT, __FUNCTION__ "rv = 0x%X.\n", rv);
		hwndToOrigHandler[hWnd] = (WNDPROC)dwNewLong;
		SetWindowLongW(hWnd, GWL_WNDPROC, (LONG)MyWndProcW);
		return rv;
	}
	if(nIndex == GWL_STYLE)
	{
		// some SDL apps create a window, attach d3d,
		// then modify the window style for fullscreen.
		// disallow that last step if the window has been fake-fullscreen locked.
		if(IsWindowFakeFullscreen(hWnd))
		{
			return MyGetWindowLongW(hWnd, nIndex);
		}
	}
	LONG rv = SetWindowLongW(hWnd, nIndex, dwNewLong);
	debuglog(LCF_WINDOW|LCF_FREQUENT, __FUNCTION__ "RV = 0x%X.\n", rv);
	return rv;
}
开发者ID:Lekila,项目名称:Hourglass-Resurrection,代码行数:29,代码来源:windowhooks.cpp


示例9: alSourcef

void alSourcef(ALuint source, ALenum param, ALfloat value)
{
    DEBUGLOGCALL(LCF_OPENAL);
    AudioSource* as = audiocontext.getSource(source);
    if (as == nullptr) {
        ALSETERROR(AL_INVALID_NAME);
        return;
    }

    AudioBuffer* ab;
    switch(param) {
        case AL_GAIN:
            as->volume = value;
            debuglog(LCF_OPENAL, "  Set gain of ", value);
            break;
        case AL_PITCH:
        case AL_MIN_GAIN:
        case AL_MAX_GAIN:
        case AL_MAX_DISTANCE:
        case AL_ROLLOFF_FACTOR:
        case AL_CONE_OUTER_GAIN:
        case AL_CONE_INNER_ANGLE:
        case AL_CONE_OUTER_ANGLE:
        case AL_REFERENCE_DISTANCE:
            debuglog(LCF_OPENAL, "Operation not supported");
            break;
        case AL_SEC_OFFSET:
            /* We fetch the buffer format of the source.
             * Normally, all buffers from a queue share the exact same format.
             */
            if (! as->buffer_queue.empty()) {
                ab = as->buffer_queue[0];
                debuglog(LCF_OPENAL, "  Set position of ", value, " seconds");
                value *= (ALfloat) ab->frequency;
                as->setPosition((int)value);
            }
            break;
        case AL_SAMPLE_OFFSET:
            /* We fetch the buffer format of the source.
             * Normally, all buffers from a queue share the exact same format.
             */
            debuglog(LCF_OPENAL, "  Set position of ", value, " samples");
            as->setPosition((int)value);
            break;
        case AL_BYTE_OFFSET:
            if (! as->buffer_queue.empty()) {
                ab = as->buffer_queue[0];
                value /= (ALfloat) ab->alignSize;
                debuglog(LCF_OPENAL, "  Set position of ", value, " bytes");
                as->setPosition((int)value);
            }
            break;
        default:
            ALSETERROR(AL_INVALID_OPERATION);
            return;
    }
}
开发者ID:SebastienBenazet,项目名称:libTAS,代码行数:57,代码来源:openal.cpp


示例10: HotkeysUnregister

/* Thread safe - doesn't care about the lock */	
int HotkeysUnregister(HWND hwnd) {
	if(!(UnregisterHotKey(hwnd, 443)))
		debuglog(DEBUG_ERROR,"Failed unregistering manual sync hotkey\n");
		
	if(!(UnregisterHotKey(hwnd, 444)))
		debuglog(DEBUG_ERROR,"Failed unregistering mode switch hotkey\n");	
	
	return 1;
}
开发者ID:mastertheknife,项目名称:FSTimeSync,代码行数:10,代码来源:main.c


示例11: getOwnClientID

	bool getOwnClientID(uint64 serverConnectionHandlerID, anyID* myID) {
		if (!Globals::pluginID) {
			debuglog("GW2Plugin: Plugin not registered, unable to get own ID\n");
			return false;
		}

		if (Globals::ts3Functions.getClientID(serverConnectionHandlerID, myID) != ERROR_ok) {
			debuglog("GW2Plugin: Failed to get own ID\n");
			return false;
		}
		return true;
	}
开发者ID:Archomeda,项目名称:TS3-GW2-plugin,代码行数:12,代码来源:commands.cpp


示例12: alcGetIntegerv

void alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values)
{
    DEBUGLOGCALL(LCF_OPENAL);

    if (values == NULL)
        return;
    if (size == 0)
        return;

    switch (param) {
        case ALC_FREQUENCY:
            debuglog(LCF_OPENAL | LCF_TODO, "Request frequency");
            values[0] = 44100;
            return;
        case ALC_REFRESH:
            debuglog(LCF_OPENAL | LCF_TODO, "Request refresh");
            values[0] = 60;
            return;
        case ALC_SYNC:
            debuglog(LCF_OPENAL | LCF_TODO, "Request sync");
            values[0] = 0;
            return;
        case ALC_MONO_SOURCES:
            debuglog(LCF_OPENAL | LCF_TODO, "Request mono sources");
            values[0] = 0;
            return;
        case ALC_STEREO_SOURCES:
            debuglog(LCF_OPENAL | LCF_TODO, "Request stereo sources");
            values[0] = 0;
            return;
        case ALC_ATTRIBUTES_SIZE:
            debuglog(LCF_OPENAL | LCF_TODO, "Request attributes size");
            if (device == NULL)
            values[0] = 1;
            return;
        case ALC_ALL_ATTRIBUTES:
            debuglog(LCF_OPENAL | LCF_TODO, "Request all attributes");
            values[0] = 0;
            return;
        case ALC_MAJOR_VERSION:
            debuglog(LCF_OPENAL, "Request major version");
            values[0] = 1;
            return;
        case ALC_MINOR_VERSION:
            debuglog(LCF_OPENAL, "Request minor version");
            values[0] = 1;
            return;
        case ALC_CAPTURE_SAMPLES:
            debuglog(LCF_OPENAL | LCF_TODO, "Request capture samples");
            values[0] = 0;
            return;
    }
}
开发者ID:SebastienBenazet,项目名称:libTAS,代码行数:53,代码来源:openalc.cpp


示例13: decode_servicelist_item

int decode_servicelist_item(byte* byteptr, int this_section_length,ServiceListItem* item_servicelist){
	byte* b = byteptr;
	int l = this_section_length;

	item_servicelist->service_id = SLD_DESC_ITEM_ID(b);
	item_servicelist->service_type = SLD_DESC_ITEM_TYPE(b);

/*	printf("item_servicelist->service_id:%d\t",item_servicelist->service_id);
	printf("item_servicelist->service_type:%d\n",item_servicelist->service_type);*/
	debuglog("item_servicelist->service_id:%d\t",item_servicelist->service_id);
	debuglog("item_servicelist->service_type:%d\n",item_servicelist->service_type);

	return l;
}
开发者ID:gongweijun86,项目名称:simplepg,代码行数:14,代码来源:desc_service_list.c


示例14: waitAccept

void waitAccept(){
    PollfdHandler pfdHandler(max_bind_num);
    pfdHandler.addOneFd(socketFd, POLLIN | POLLOUT | POLLERR);
    
    while (true) {
        poll(pfdHandler.fds, pfdHandler.getCount(), -1);
        for (int i = 0; i < pfdHandler.getCount(); i++) {
            if(pfdHandler.fds[i].fd == socketFd){
                if(pfdHandler.fds[i].revents){
                    int clientFd = accept(socketFd, NULL, NULL);
                    if (clientFd < 0 && errno == EAGAIN) {
                        //errorlog("accept");
                    }else{
                        pfdHandler.addOneFd(clientFd, POLLIN | POLLOUT | POLLERR);
                        debuglog("one client connected! i = %d\n", i);
                    }
                }
            }else{
                if(pfdHandler.fds[i].revents & POLLIN){
                    debuglog("POLLIN! i = %d\n", i);
                    char buf[4096], bf[512];
                    memset(buf, 0, 4096);
                    memset(bf, 0, 512);
                    ssize_t len = -1;
                    char *p = buf;
                    while ((len = read(pfdHandler.fds[i].fd, bf, 512)) > 0) {
                        memcpy(p, bf, len);
                        p += len;
                    }
                    if(len == 0 || (len < 0 && errno == EAGAIN)){
                        debuglog("client receive msg ok, msg=%s \n", buf);
                    }else if(len < 0){
                        debuglog("client receive msg then remove client \n");
                        pfdHandler.removeOneFd(pfdHandler.fds[i].fd);
                    }
                }
                if(pfdHandler.fds[i].revents & POLLOUT){
                    //debuglog("POLLOUT i = %d!\n", i);
                }
                if(pfdHandler.fds[i].revents & POLLERR){
                    debuglog("error i = %d, ", i);
                    errorlog("POLLERR! then remove client!\n");
                    pfdHandler.removeOneFd(pfdHandler.fds[i].fd);
                }
            }
        }
    }
}
开发者ID:hardman,项目名称:socketTest,代码行数:48,代码来源:main.cpp


示例15: debuglog

/* Override */ const ALCchar* alcGetString(ALCdevice *device, ALCenum param)
{
    //debuglog(LCF_OPENAL, __func__, " call with param ", std::hex, param, std::dec);
    debuglog(LCF_OPENAL, __func__, " call with param ", param);

    switch (param) {
        case ALC_DEFAULT_DEVICE_SPECIFIER:
            debuglog(LCF_OPENAL, "Request default device");
            return alcDeviceStr;

        case ALC_DEVICE_SPECIFIER:
            if (device == NULL) {
                debuglog(LCF_OPENAL, "Request list of available devices");
                return alcDeviceListStr;
            }
            else {
                debuglog(LCF_OPENAL, "Request current device");
                return alcDeviceStr;
            }

        case ALC_EXTENSIONS:
            debuglog(LCF_OPENAL, "Request list of supported extensions");
            if (device == NULL) {
                ALCSETERROR(ALC_INVALID_DEVICE);
                return NULL;
            }
            return alcExtensionsStr;

        case ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER:
            debuglog(LCF_OPENAL, "Request default capture device");
            return NULL;
        case ALC_CAPTURE_DEVICE_SPECIFIER:
            if (device == NULL) {
                debuglog(LCF_OPENAL, "Request list of available capture devices");
                return alcCaptureListStr;
            }
            else {
                debuglog(LCF_OPENAL, "Request current capture device");
                return NULL;
            }

        /* Request error strings */
        case ALC_NO_ERROR:
            return alcNoErrorStr;
        case ALC_INVALID_DEVICE:
            return alcInvalidDeviceStr;
        case ALC_INVALID_CONTEXT:
            return alcInvalidContextStr;
        case ALC_INVALID_ENUM:
            return alcInvalidEnumStr;
        case ALC_INVALID_VALUE:
            return alcInvalidValueStr;
        case ALC_OUT_OF_MEMORY:
            return alcOutOfMemoryStr;
        default:
            return alcDefault;
    }
}
开发者ID:SebastienBenazet,项目名称:libTAS,代码行数:58,代码来源:openalc.cpp


示例16: coind_error

void coind_error(YAAMP_COIND *coind, const char *s)
{
    coind->auto_ready = false;

    object_delete(coind);
    debuglog("%s error %s\n", coind->name, s);
}
开发者ID:tpruvot,项目名称:yiimp,代码行数:7,代码来源:coind.cpp


示例17: MyCoCreateInstance

// in case either MyCoCreateInstance doesn't call MyCoCreateInstanceEx or MyCoCreateInstance is called and MyCoCreateInstanceEx failed to get hooked
HOOKFUNC HRESULT STDAPICALLTYPE MyCoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID *ppv)
{
	ThreadLocalStuff& curtls = tls;
	curtls.callerisuntrusted++;
	const char* oldName = curtls.curThreadCreateName;
	const char* newName = riidToName(chooseriid(riid,rclsid));
	debuglog(LCF_MODULE, __FUNCTION__ "(0x%X, 0x%X (%s)) called.\n", riid.Data1, rclsid.Data1, newName?newName:"?");
	if(newName)
		curtls.curThreadCreateName = newName;

	HRESULT rv = E_FAIL;

	if(TrySoundCoCreateInstance(riid, ppv))
	{
		rv = S_OK;
	}
	else
	{
		// normal case
		rv = CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv);
		if(SUCCEEDED(rv))
			HookCOMInterface(riid, ppv);
	}
	if(newName)
		curtls.curThreadCreateName = oldName;
	UpdateLoadedOrUnloadedDllHooks();
	curtls.callerisuntrusted--;
	return rv;
}
开发者ID:Lekila,项目名称:Hourglass-Resurrection,代码行数:30,代码来源:modulehooks.cpp


示例18: debuglog

	void DeterministicTimer::ExitFrameBoundary()
	{
		debuglog(LCF_TIMEGET|LCF_FREQUENT, __FUNCTION__ " called.\n");
		for(int i = 0; i < TIMETYPE_NUMTRACKEDTYPES; i++)
			altGetTimes[i] = 0;
		//forceAdvancedTicks = 0;
		ticksAddedSinceLastFrame = 0;
		replaceReserveUsed = 0;

		//timedebugprintf(__FUNCTION__ " called.\n");
		if(tasflags.framerate <= 0)
			return nonDetTimer.ExitFrameBoundary(); // 0 framerate means disable deterministic timer

//		disableSelfTicking = 0;

//		debugprintf("thread = 0x%X, framethread = 0x%X\n", frameThreadId, GetCurrentThreadId());
//		debugprintf("getTimes = %d (0x%X)", getTimes, getTimes);
		getTimes = 0;
		if(warningcountdown > 0)
			warningcountdown = 100;

		// FIXME: TESTING
		DWORD addedTicks = lastNewTicks;//(ticks - lastEnterStartTicks);
		if(addedDelay > addedTicks)
			addedDelay -= addedTicks;
		else
			addedDelay = 0;
	}
开发者ID:Bobakanoosh55555,项目名称:hourglass-win32,代码行数:28,代码来源:dettime.cpp


示例19: pageManagerDestroy

void pageManagerDestroy(EpsPageManager *pageManager)
{
	PageManagerPrivateData  *privateData;

	if (pageManager == NULL) {
		return;
	}

	privateData = (PageManagerPrivateData *)pageManager->privateData;
	if (privateData) {
		if (privateData->raster_buf) {
			eps_free(privateData->raster_buf);
		}

		if (privateData->raster_h) {
			eps_raster_free(privateData->raster_h);
		}

		if (privateData->pipeline) {
			raster_helper_destroy_pipeline(privateData->pipeline);
		}

		eps_free(privateData);
	}

	subPageManagerDestroy(pageManager->subPageManager);
	eps_free(pageManager);
	pageManager = NULL;

	debuglog(("pageManager Destroyed."));
}
开发者ID:endlessm,项目名称:epson-inkjet-printer,代码行数:31,代码来源:pagemanager.c


示例20: MyDuplicateHandle

HOOKFUNC BOOL WINAPI MyDuplicateHandle(HANDLE hSourceProcessHandle,
    HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle,
    DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwOptions)
{
	HANDLE handle = 0;
	if(!lpTargetHandle)
		lpTargetHandle = &handle;
	BOOL rv = DuplicateHandle(hSourceProcessHandle, hSourceHandle,
		hTargetProcessHandle, lpTargetHandle,
	    dwDesiredAccess, bInheritHandle, dwOptions);

	debuglog(LCF_SYNCOBJ, __FUNCTION__ "(0x%X -> 0x%X).\n", hSourceProcessHandle, *lpTargetHandle);

	EnterCriticalSection(&s_handleCS);
	std::set<HANDLE>& handles = s_threadIdHandles[GetCurrentThreadId()];
	handles.insert(*lpTargetHandle);
	if(dwOptions & DUPLICATE_CLOSE_SOURCE)
	{
		handles.erase(hSourceProcessHandle);
		//std::vector<HANDLE>::iterator iter = std::find(handles.begin(), handles.end(), hSourceProcessHandle);
		//if(iter != handles.end())
		//	handles.erase(iter);
	}
////		handles.erase(std::remove(handles.begin(), handles.end(), hSourceProcessHandle));
//		for(unsigned int i = 0; i < handles.size(); i++)
//			if(handles[i] == hSourceProcessHandle)
//				handles[i] = NULL;
	LeaveCriticalSection(&s_handleCS);

	return rv;
}
开发者ID:Bobakanoosh55555,项目名称:hourglass-win32,代码行数:31,代码来源:synchooks.cpp



注:本文中的debuglog函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ debugmsg函数代码示例发布时间:2022-05-30
下一篇:
C++ debugl1函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap