草庐IT

c - 什么库/如何在 C 中的 Windows32 上播放 wav 文件?

在Win32系统上播放wav文件需要哪些C库?使用这些库的代码是什么? 最佳答案 使用Win32API:PlaySound包含库:Winmm.libheader包括:Mmsystem.h(包括Windows.h)示例:PlaySound(TEXT("recycle.wav"),NULL,SND_FILENAME); 关于c-什么库/如何在C中的Windows32上播放wav文件?,我们在StackOverflow上找到一个类似的问题: https://stac

c - GNU C 库是否可用于非 GNU(或 POSIX)平台?

只是想知道,GNUC库(glibc)是否可以在非GNU和/或非POSIX平台(例如MicrosoftWindows)上使用? 最佳答案 是的,这在理论上是可行的,但在实践中并不值得。您需要将系统调用接口(interface)、动态链接器和其他部分移植到Windows或您选择的平台,而Glibc不是理想的选择。如果你真的需要一个独立的C库,我会考虑newlib或uClibc(或FreeBSD/OpenBSD的libc)在glibc之上。Glibc是一个复杂的野兽,替代品要小得多,也更容易理解。

c - Windows是否回收堆栈空间?

我正在做一种叫做“堆叠绘画”的技术。确定特定函数使用了多少堆栈空间。如果我在堆栈上分配1MB的项目。然后确保我没有使用堆栈中的任何这些项目。Windows自动取消提交(释放)那些未使用的页面吗?我特别想知道Windows的VMM。关于页面是否提交或不一定提交但只是保留?换句话说,如果我手动访问1MB的内存,Windows可能会抛出访问冲突? 最佳答案 您不会删除在堆栈上分配的内容;它会自动回收,因为当您退出当前作用域时,堆栈指针会移回前一个堆栈帧1,因此当前作用域中用于对象的所有内存都被有效回收。原则上,所有堆栈都是在应用程序加载到

c++ - C++ 中的 ThreadPool 库

我正在寻找一个良好且稳定的C++线程池库,该库有很好的文档记录。我知道nativeWindows线程池API和较新的Vista线程池API,但是我的程序需要一些向后兼容性,所以也许我可以为程序提供一个外部库更好。我研究了Boost的线程池,它看起来一点也不差,不幸的是它没有很好的文档记录。有人知道在C++中有ThreadPool的任何其他库吗?(适用于Windows) 最佳答案 Aportablethreadpoollibrary声称“生产就绪”。您可能需要检查一下。 关于c++-C++

c++ - 将线程移植到 Windows。关键部分非常慢

我正在将一些代码移植到Windows中,发现线程处理速度极慢。该任务在Windows上需要300秒(使用两个至强E5-26708核2.6ghz=16核),在Linux上需要3.5秒(至强E5-16074核3ghz)。使用vs2012express。我有32个线程都在调用EnterCriticalSection(),弹出一个std::stack的80字节作业,LeaveCriticalSection并做一些工作(总共250k个作业)。在每次关键部分调用之前和之后,我都会打印线程ID和当前时间。单线程锁等待时间~160ms将作业从堆栈中弹出大约需要3毫秒调用leave需要大约3毫秒这项工作

处理 eps/pdf 的 C++ 库

你知道Win32下有没有不用安装Ghostview/ghostscript就可以处理EPS和PDF格式文件的库。(我目前正在使用ImageMagick)谢谢... 最佳答案 ImageMagick也可用于win32。Link 关于处理eps/pdf的C++库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7739695/

c - 如何在 Windows 上将千位分隔符添加到 C 中的 double ?

我使用MPFR库对大数进行计算,但也返回小数点后8位的double值。我将mpfr_sprintf数字转换为字符数组,这样精度或任何东西都不会丢失。一切都很好,只是我没有在文档中找到任何千位分隔符选项(或者我错过了它)。给定一个数字,例如20043.95381376,为了更好的可读性,我想将其表示为20,043.95381376。或者数字164992818.48075795为164,992,818.48075795我读到关于应该添加到printf/sprintf的撇号,但这似乎是UNIX/POSIX的东西,而我是Windows用户。因为我在内部将数字打印为字符串,所以我想我可以做的是编

c - Windows下动态加载库的地址范围

我有一个可以使用LoadLibrary加载插件的工作程序.新需求:在代码的某个点,我得到了一个指针,我需要测试这个指针是指向代码还是插件的静态数据。boolis_pointer_into_plugin(void*p,HMODULEh);同样,我需要检索指针指向的插件(如果有的话)。我还需要知道指针是否指向主程序的代码或静态数据(理想情况下,区分只读和读写区域)。HMODULEplugin_containing_pointer(void*p);同样,我需要能够检索插件映射的范围(地址和大小)。我还需要主程序的这些信息。我如何实现is_pointer_into_plugin,或plugin

c++ - 试用期满后禁用申请

我正在为半受信任的客户端编写一个简单的应用程序,对某些细节没有发言权。必须为客户端提供一份二进制文件myTestApp,它使用外部库libsecrets中的专有代码。它是一个Windows应用程序,可以在几台独立的Windows7笔记本电脑上运行。我被告知,在应用程序完成其目的后,它将被删除。我知道对此没有完美的解决方案,但我想在程序中实现一个到期日期,并阻止可能对代码进行逆向工程的努力,或者至少防止libsecrets的内容被泄露太容易暴露了。所以,我的第一步是将myTestApp静态链接到libsecrets,这样所有内容都包含在一个二进制文件中,所以只有libsecrets包含在

c - 如何使用 win32 API 在时区之间进行转换?

我有诸如2009-02-2815:40:05AEDST之类的日期字符串,我想将其转换为SYSTEMTIME结构。到目前为止,我有:SYSTEMTIMEst;FILETIMEft;SecureZeroMemory(&st,sizeof(st));sscanf_s(contents,"%u-%u-%u%u:%u:%u",&st.wYear,&st.wMonth,&st.wDay,&st.wHour,&st.wMinute,&st.wSecond);//TimezonecorrectionSystemTimeToFileTime(&st,&ft);LocalFileTimeToFileTim