草庐IT

c++ - 在全局变量的初始化/取消初始化中使用隐式加载的 DLL 中的函数

考虑一个使用导入库logging.lib的Windows程序,这样logging.dll将在运行时自动加载/卸载。另外,考虑主程序的翻译单元之一定义类类型的全局变量,如下所示:structInitGuard{InitGuard(){logging::initialize();}~InitGuard(){logging::deinitialize();}};InitGuardg_initGuard;除了更好的方法是在函数main中实例化InitGuard之外:是否保证logging.dll在调用InitGuard的c'tor时已经加载?更重要的是,是否保证logging.dll在Init

c++ - 以编程方式打开和关闭控制台

我正在用C++编写一个窗口程序,但我希望可以选择弹出一个控制台以从程序内部输出(例如我的程序幕后发生的各种事情,以查看一切正常)。有没有简单的方法可以做到这一点?编辑:在这种特殊情况下,我使用sfml在Windows上,但出于这个问题的目的,它可以是任何API或平台(最好是独立于平台的解决方案) 最佳答案 如果您谈论的是MSWindows,而您的问题没有明确说明,您可以使用AllocConsole用于创建控制台的API。为您的应用。编辑:您说它可以是任何平台,但事实并非如此,因为许多平台都没有控制台的概念。因此,跨平台解决方案是不可

c++ - 包装第 3 方 DLL

我有一个需要使用LoadLibrary()动态加载并使用__cdecl调用约定的第3方DLL。我需要能够使用VB6中的dll,因此我创建了一个我自己的包装器DLL,它使用__stdcall调用约定并导出所需的函数。现在有一个额外的要求,我正在努力寻找如何管理;包装的DLL为另一个应用程序提供了一个API,我需要同时连接到该应用程序的两个实例。这是一个问题,因为DLL没有session的概念,典型的交互如下所示:tpc_connect("service1")//Dosomestufftpc_disconnect()我需要做的是session1=tpc_connect("service1"

c++ - 在 direct3d 应用程序中呈现格式化文本

我需要呈现一些格式化的文本(颜色、不同的字体大小、下划线、粗体等),但我不确定如何去做。D3DXFont只允许一次呈现单一字体/大小/粗细/颜色/等的文本,我看不到一种实用的方法来“组合”对ID3DXFont::DrawText的多次调用来做这样的事情......我环顾四周,似乎没有任何现有的库可以做这些事情,但我不知道如何实现这样的文本渲染器,我什至找不到任何关于如何渲染这样的文本的文档会工作,只渲染简单的固定宽度,ASCII位图字体,从表面上看可能是一种完全不同的方法,它只适用于渲染简单的文本block,其中Unicode不重要。如果没有direct3d字体渲染能够做到这一点,是否

c++ - 在 VC++ 中执行一个进程并返回它的标准输出

执行进程、等待它完成,然后将其标准输出作为字符串返回的最简单方法是什么?有点像Perl中的backtics。不是在寻找跨平台的东西。我只需要最快的VC++解决方案。有什么想法吗? 最佳答案 WinAPI解决方案:您必须使用重定向输入(STARTUPINFO结构中的hStdInput字段)和输出(hStdOutput)到您的管道(请参阅CreatePipe)创建进程(请参阅CreateProcess),然后只从管道中读取(请参阅ReadFile)。 关于c++-在VC++中执行一个进程并返

c++ - 错误错误 LNK2001 : unresolved external symbol _deflateEnd in VC++

我使用的是libharu-2.0.8的外部库,这是一个开源的pdf库。这个库有一个名为libhpdf.lib的库文件和几个头文件我已经编写了一个简单的代码来使用这个库。我收到以下错误。libhpdf.lib(hpdf_streams.obj):错误LNK2001:未解析的外部符号_deflateEndlibhpdf.lib(hpdf_streams.obj):错误LNK2001:未解析的外部符号_deflatelibhpdf.lib(hpdf_streams.obj):错误LNK2001:未解析的外部符号deflateInit 最佳答案

c++ - 如何用Excel打开XML文件?

我想开发一个用于打开XML文件并自动启动Excel的小工具。方便用户将excel文件保存为.xls格式。我的开发IDE:WindowsXP专业版和VisualStudio2005。该工具将在Windows2000和Excel2000上运行。并且没有安装.net框架。这意味着我无法使用C#进行编码。我的选择是C++。 最佳答案 单线:intmain(){system("StartExceltest.xml");} 关于c++-如何用Excel打开XML文件?,我们在StackOverflo

c++ - 如何检查计算机是否存在?

我写了一个小程序,它像ping命令一样工作(我使用ICMPSendEcho2),但它返回一个返回值,而不仅仅是一条文本消息。现在我只有一个问题。如何以编程方式检查主机名是否存在?我的意思是,如果我想pingcomputerA,而我什至没有computerA,那么它应该说最初ping所说的内容:“Ping请求找不到主机...”。这意味着不存在具有该名称的计算机。但是如果我用我的pingpingcomputerB(当它关闭时)然后它说找不到主机。所以我的问题是我如何确定一台计算机不存在,或者它只是关闭了?提前致谢!坎比 最佳答案 How

c++ - DLL 中的非阻塞套接字(无窗口)

我有一个通过单个套接字连接到服务器的DLL。我面临以下问题:如果服务器的IP地址和端口为假或服务器已关闭,则使用此DLL的应用程序会卡住半分钟。我的想法是使用非阻塞套接字来避免该问题,方法是显示一个指示连接进度的窗口,并允许取消此过程。但是我没有窗口处理程序,怎么能使用WSAAsyncSelect函数呢? 最佳答案 如果你想使用WSAAsyncSelect类型的套接字,那么你的Dll将需要创建至少一个消息窗口来处理套接字事件。由于窗口将永远不可见,因此它的WindowProc将仅包含一个处理程序,用于您的自定义消息(WM_USER+

c++ - 独立、操作系统无关、架构中立、多线程库

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion什么多线程C++库可用于编写Linux、Windows、Solaris和iPhone应用程序?如:TBBBoostOpenMPACEPOCO还有其他的吗?