Articles of c + +

提高Windows的互斥体实施

据我所知,在旧版本的Boost boost::mutex实现中,Windows是使用临界区域完成的。 但在最新版本的Boost 1.51中,我发现互斥体的实现是基于事件的。 有人知道这个变化背后的理由是什么吗? 是否因性能原因而完成? 关键部分是否被弃用?

如何解决“java.lang.UnsatisfiedLinkError:无法find依赖库”没有System32?

我正在开发Eclipse上的Java项目,通过JNI使用C ++ OpenCV库。 一些image processingalgorithm是在本机端用OpenCV实现的,我希望从JNI中使用它们。 我build立了一个C ++ DLL项目来链接到Java,这导致了一个MyLibrary.dll文件。 我使用GCC 6.3编译器编译了OpenCV,并在Eclipse CDT上使用相同的GCC 6.3编译器编译C ++代码(以及MinGW Linker)。 我也检查是否有任何依赖问题使用Dependency Walker 。 到目前为止,我没有错误。 之后,我尝试从Java代码加载库,如下所示: System.loadLibrary("MyLibrary") 我已经使用-Djava.library.path=path\to\MyLibrary设置path,并确保JVM知道本地库的地址。 我还在MyLibrary.dll旁边添加了所需的OpenCV库。 但是,我得到以下错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: MyLibrary.dll: Can't find dependent libraries at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(Unknown Source) at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) … 然后问题消失,当我将依赖的OpenCV库移动到System32文件夹。 我的问题是 我怎么能解决这个问题, 而不移动所需的DLL文件到System32文件夹?

ms c ++获取当前进程的pid

我的应用程序的一部分是在Windows下的C ++。 我需要当前进程的进程ID。 有什么想法吗?

在C ++(Portaudio)中捕获全局audio输出

我有一个问题:是否有可能使用Portaudiologging全局Windows输出? 我已经读过,您可以将input设备更改为实际的输出设备,但根本不工作。 那么有没有其他logging输出声音的可能性? 我想更喜欢使用Portaudio,但我不害怕使用其他API。 它应该是一个跨平台的API。 最好的问候,丹尼斯

MinGW的C ++ 11function

我尝试为unordered_map使用emplace()函数,编译器说没有这样的函数存在。 我把-std=c+11 ,它说cc1plus.exe: error: unrecognized command line option '-std=c+11' 我能以某种方式使用mingw的C ++ 11function吗?

Windows注册的I / O Win 8.1 RioCreateRequestQueue错误10045

使用Win8.1和Visual Studio 2013,我testing了我可以find的每个Windows注册I / O示例(约5)。 所有导致RioCreateRequestQueue()的错误10045,如下所示。 c:>rioServerTest.exe InitialiseRio Start InitialiseRio End CreateCompletionQueue Start CreateCompletionQueue End CreateRequestQueue start RIOCreateRequestQueue Error: 10045 相关的代码是: void *pContext = 0; printf("CreateRequestQueue start\n"); g_requestQueue = g_rio.RIOCreateRequestQueue( g_socket, // Socket (ULONG) 10, // MaxOutstandingReceive, (ULONG) 1, // maxReceiveDataBuffers, (ULONG) 10, // MaxOutstandingSend, (ULONG) 1, // MaxSendDataBuffers g_completionQueue, // ReceiveCQ g_completionQueue, // SendCQ […]

在Windows上生成一个硬件ID

在Microsoft Windows上用C ++生成唯一的硬件ID的最好方法是什么,这个C ++不容易被欺骗(例如更改MAC地址)?

使用C的dll注入

嘿,即时通讯试图注入一个DLL进程,即lsass.exe获取哈希。它有点哈克,但不能帮助我的项目。 我有一个DLL注入的代码,但在Visual C ++中,它给出了错误,如.. 在TEXT(“LoadLibraryA”))))—- >>>参数const wchar与LPCSTR不兼容 在lpFuncAddr ———– >>>参数types“LPVOID”与参数types“LPTHREAD_START ROUTINE”不兼容 码: BOOL InjectDLL(DWORD dwProcessId, LPCSTR lpszDLLPath) { HANDLE hProcess, hThread; LPVOID lpBaseAddr, lpFuncAddr; DWORD dwMemSize, dwExitCode; BOOL bSuccess = FALSE; HMODULE hUserDLL; //convert char to wchar char *lpszDLLPath = "hash.dll"; size_t origsize = strlen(orig) + 1; const size_t newsize = 100; size_t convertedChars = […]

JavaScript像WinForms的模态窗口

有没有人知道一个好的模态窗口控件有点像在Javascript中使用的,但可用于WinForms(C#)的透明背景和所有。 使用Javascript示例http://okonet.ru/projects/modalbox/ 就像是 ModalCoolForm f = new ModalCoolForm(); f.ShowDialog(this);

获取相对于特定目录的文件path

在WinAPI中有一个很好的方法来获取相对于另一个path的path吗? 例如: 有一个相对于以下path的列表: A B C D 我想把它们全部改成相对path A \ B \ C 有没有一个干净的方式来做到这一点,或者我应该得到pathparsing?