草庐IT

c++ - 有没有办法中止 SQLite 调用?

我在Windows应用程序中使用SQLite3。我有源代码(所谓的SQLite合并)。有时我必须执行繁重的查询。也就是说,我在准备好的语句上调用了sqlite3_step,它需要很长时间才能完成(由于I/O负载很重)。我想知道是否有可能中止这样的调用。如果能够在同一线程调用的中间进行一些后台处理,我也会很高兴(因为大部分时间都花在等待I/O完成上).我想过自己修改SQLite代码。在最简单的情况下,我可以在每次调用ReadFile/WriteFile之前检查一些条件(例如中止事件句柄),并适本地返回错误代码。并且为了允许后台处理,文件应该以重叠模式打开(这会启用异步ReadFile/W

c++ - 链接到系统 C 库 msvcrt.dll

在Windows中,有一个默认的C库msvcrt.dll。是否可以编写仅使用msvcrt.dll函数的简单C程序?这样就无需安装最新的VC运行时。我认为一种可能的方法是显式指定/NODEFAULTLIB,并使用dll导入过程导入msvcrt.dll函数。有人知道吗? 最佳答案 您可以使用MinGW-w64GCC,它链接到msvcrt.dll正是出于您所说的原因。您可以找到下载here.如果您不想重新分发任何DLL,您可以使用-static-libgcc-static-libstdc++链接您的程序。也就是说,您只需将msvcr*.d

c - eventfd 是否有 Windows 等效项?

我正在编写一个模拟套接字行为的跨平台库,在两者之间具有附加功能(应用程序->mylib->套接字)。我希望它对程序员来说尽可能透明,因此select和poll等原语必须相应地与这个lib一起工作。问题是当数据在真实套接字中变得可用(例如)时,它必须经过很多处理,所以如果select指向真实套接字fd,应用程序将被阻塞很多时间。我希望选择/轮询仅在准备好使用数据时(在我的库完成所有处理之后)解除阻塞。所以我遇到了这个eventfd,它允许我做我想做的事,即在给定的fd上操纵选择/轮询行为。由于我对Linux环境比较熟悉,所以我不知道eventfd在windows中的作用是什么。尝试搜索但

c - DLL:在 Linux for Windows 上使用 MinGW 编译 C 时无法识别文件格式

我在Linux(特别是Ubuntu)上使用MinGW为Windows编译C程序。我正在使用一个名为SFML的库,它的绑定(bind)名为CSFML。我正在使用-L和-l来定位库,但在编译时出现此错误:win32/dll/csfml-audio-2.dll:filenotrecognized:Fileformatnotrecognised我不知道为什么。这是我用来编译的命令:sudoi686-w64-mingw32-gcc-owanderingsrc/main.csrc/constants.csrc/Display/display.c**...somemorecfilesinhere..

c# - 如何在 C#/WPF 中以编程方式访问 Windows Media Player 库?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我需要从我的C#/WPF应用程序访问和显示来自WindowsMediaPlayer库的信息。我如何在C#/WPF中以编程方式执行此操作?

c - 为 Windows 库添加 unicode 支持

我想为我正在维护的C库添加Unicode支持。目前它希望所有字符串都以utf8编码传递。根据反馈,Windows通常提供3个功能版本。fooA()ANSI编码字符串fooW()Unicode编码字符串foo()字符串编码取决于UNICODE定义有没有一种无需自己编写大量包装函数即可添加此支持的简单方法?一些函数可以从库中调用,也可以由用户调用,这使情况变得有点复杂。我想保留对utf8字符串的支持,因为该库可在多个操作系统上使用。 最佳答案 没有后缀的foo函数实际上是宏。fooA函数已过时,是fooW函数的简单包装器,它们是唯一实际

c++ - Visual C++ 库 DLL 是否已本地化?

在Windows上部署我们的c++应用程序时,我们包括VisualC++运行时库,即使用像Microsoft_VC90_CRT_x86.msm这样的合并模块。当以其他语言(西类牙语、葡萄牙语、德语等)为目标时,我们是否需要这些库的本地化版本,或者它们是通用的?如果您可以提供“直接来自源代码”的链接,那将是非常有帮助的。也欢迎任何实践经验。 最佳答案 MFC有本地化的DLL和一个合并模块来安装合适的:http://msdn.microsoft.com/en-us/library/ms235264.aspx主要的VisualC++运行时

c - 在没有 C 运行时的情况下与 VS2010 链接时未解析的符号

我正在处理一个有大小限制的项目,所以我不想链接到VisualStudio的C运行时。我使用静态运行时(/MT)和/NODEFAULTLIB:LIBCMT标志来执行此操作。我已经通过检查VS附带的运行时源解决了大部分问题。但是,编译器仍然会生成一些未解析的外部符号:_chkstk:生成用于检查大于4k的函数的堆栈。我可以关闭它或提供虚拟功能吗?__libm_sse2_pow和其他SSE调用:我可以通过关闭SSE代码生成来避免这些,但如果可能的话,我希望拥有它们。这些符号似乎来自Intel库(libmmd.lib?)。为什么这部分仍然是C运行时?_ftol2_sse:将浮点型转换为长整型。

c - MPI基础类(class)

您好,我想学习在C中使用MPI。我在Windows7上使用Codeblocks我运行了这个程序:#include#includevoidmain(intargc,char*argv[]){interr;err=MPI_Init(&argc,&argv);printf("Helloworld!\n");err=MPI_Finalize();}但出于某种原因,我在“mpi.h”处遇到错误。有没有办法添加库? 最佳答案 首先,安装MPI的实现。过去我使用过MPICH,但还有其他可用的实现。我知道另一个是LAM/MPI。查看维基百科页面以获

c# - 在 C# 中编码一个 char**

我正在与采用char**(即指向字符串的指针)的代码进行交互:intDoSomething(Whatever*handle,char**error);基本上,它需要一个状态句柄,如果出现问题,它会返回错误代码和可选的错误消息(内存是在外部分配的,并通过第二个函数释放。那部分我已经弄明白了:)).但是,我不确定如何在C#中处理in。我目前拥有的:[DllImport("mydll.dll",CallingConvention=CallingConvention.Cdecl)]privatestaticunsafeexternintDoSomething(IntPtrhandle,byte