本文整理汇总了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;未经允许,请勿转载。 |
请发表评论