草庐IT

strcmp函数

全部标签

c++ - 通过旧的(非 wchar)API 函数在非 ANSI 系统上打开文件

我正在编写一些让我抓狂的中间件。我正在寻找一些I18N专家来帮助我-这对我来说都是全新的。现在这一切都在Windows中,但它也必须在Linux和Mac上运行,尽管我敢打赌它们会很容易。我有一个系统(我无法触摸),它会给我一个类似于wchar_t*的字符串。它接受UTF-8或当前语言环境的输入,并神奇地给我一个wchar_t*。我有另一个我正在使用的API,它只能将文件名作为char*(我也不能触摸)。所以我一直在做的是在wchar_t*中获取我的文件名并使用WindowsAPI函数WideCharToMultiByte并将其转换为char*并将其传递给我的其他API函数。它工作得很好

在 Linux 和 Windows 中具有包含和排他性的 C++ 多线程函数

Linux我有两个函数:functionA和functionB这两个函数可以多线程运行,即:一次最多可以运行一个functionA一次可以运行多个functionBfunctionA和functionB是互斥的,即如果正在执行functionA然后functionB必须等到functionA完成,并且如果有functionB的任何实例正在执行,那么functionA必须等到functionB的allinstances完成。你能告诉我如何在Linux中使用pthread实现这个吗?我试了很多方法,但似乎不够清楚。Windows我如何使用C++在Windows中完成同样的事情?

内核函数可以有不同的虚拟地址吗

这更像是一个知识问题,而不是实际实现。我想知道系统启动后是否有任何内核函数可以具有不同的虚拟地址。我对可执行文件编译的理解是为其二进制文件分配虚拟地址,但虚拟地址到物理地址是在运行时由操作系统完成的。(分页。我知道那东西。所以,不需要2解释)但是对于内核函数,每次重新启动系统时我都会看到它们具有不同的虚拟地址。1、内核函数在地址范围内是如何映射的?2.能否在运行时将它们映射到不同的虚拟地址。(不知道怎么可能)3.dll的地址映射是怎样的?它们是在编译时被赋予虚拟地址还是在运行时被赋予相对地址?(我认为这就是它完成的方式。)4.有什么方法可以找到是否有任何内核虚拟地址被固定到物理内存。谢

c++ - 用类成员函数调用AfxBeginThread?

如何使用任意非静态类方法调用AfxBeginThread?也许我可以用boostbind做些什么?以下是Microsoft的预期用法(并且是调用非静态方法的示例,但它是硬编码的方法):UINTMyThreadProc(LPVOIDpParam){CMyObject*pObject=(CMyObject*)pParam;if(pObject==NULL||!pObject->IsKindOf(RUNTIME_CLASS(CMyObject)))return1;//ifpObjectisnotvalid//dosomethingwith'pObject'return0;//threadco

c++ - 在调用仿函数时删除它是否安全?

假设我有以下代码:typedefstd::functionfunc_type;voidsome_func(){//Irrelevantstuffhere.Mighttakesometime...}DWORDWINAPIthread_proc(LPVOIDlpParameter){func_type&func=*static_cast(lpParameter);func();return0;}intmain(){HANDLEhandle;{std::functionmy_func(some_func);handle=::CreateThread(NULL,0,&thread_proc,&

windows - C++/CLI 中的错误,除非使用 Pthread 创建委托(delegate)实例,否则无法获取函数地址

我在VisualC++2008Professional上使用C++/CLI,因为我使用的是Windows窗体,这意味着我已经管理了代码并且我正在尝试调用静态函数LoginAccounts,但我得到一个错误可能是因为我我正在混合托管代码和非托管代码,但我不知道该怎么做。我正在使用适用于Windows的PThreadSystem::Voidtesting_Click(System::Object^sender,System::EventArgs^e){pthread_create(&t,NULL,&Contas::LoginAccounts,this);//Errorinthisline}

c - Windows Driver 时间戳函数

我正在修改现有的Windows内核设备驱动程序,我需要在其中捕获时间戳。我打算使用time.h库并调用clock()函数来获取它,但是在windowsvisualstudio下,链接失败了。所以我把它当作我需要在驱动程序库中工作的一种方式。我找到了以下函数,KeInitializeTimer和KeSetTimerEx,但如果我计划设置定时器并在其上唤醒,则会使用这些函数。我真正需要的是能给我一个时间戳的东西。有什么想法吗? 最佳答案 我正在用答案更新我的问题,以便其他人从我的发现中受益。要获得时间戳,您可以使用KeQueryTick

c++ - GetUserNameExA 函数无法在系统启动时(GINA)提供用户详细信息?

我正在使用C++win32API。我尝试使用GetUserNameExA()获取用户详细信息;我已经将此功能用于系统登录对话框源(GINA)。在我的日志文件中,它给出了CN=ComputerName,CN=Computers,DC=JEGAN,DC=COM"。但它是在登录系统后使用的,那时它会在我的其他解决方案中提供用户详细信息,如"CN=sanju,CN=USERS,DC=JEGAN,DC=COM"。我只想要用户详细信息,但它在登录时提供了系统详细信息,我怎样才能在登录时获得用户详细信息?注意:我已经尝试过ADSI、LDAP功能和目录服务无法使用。所以建议任何其他系统功能。

c++ - Windows 使用带有 UTF-16 的 char * 函数

我将一个应用程序从Linux移植到Windows。在Linux上我使用libmagic在Windows上我不乐意从中删除的库。问题是我需要将以UTF-16编码保存的文件名传递给这样的函数:intmagic_load(magic_tcookie,constchar*filename);不幸的是,它只接受constchar*filename。我的第一个想法是将UTF-16字符串转换为本地编码,但存在一些问题-比如字符串可以包含例如中文符号和本地编码可能是俄语。结果我们将在输出中得到垃圾,程序将无法达到其目标。转换为UTF-8也无济于事,因为这是Windows,Windows以UTF-16格

C++ 将 FILE * 作为参数传递给函数

我想将FILE*传递给另一个函数。在此函数中,使用fread从文件中读取一些字节。不执行写入。我在想该不该说voidDoSomething(FILE*uFile)或voidDoSomething(constFILE*uFile)我害怕在某处引入内存泄漏,并认为const可能更安全。我担心当我不正确地传递它时,该函数可能会创建文件的拷贝。我像这样创建FILE*:FILE*outfile=fopen("c:\\myfile.dat","wb");谢谢。 最佳答案 无论您将FILE*传递给哪个函数,最终都会调用fread/fscanf/f