草庐IT

使用多个编译器编译 C 代码

我最近才决定学习C。我注意到我可以下载多个编译器。如果我为一个编译器编写C代码,它应该适用于所有编译器,对吗? 最佳答案 简短回答:是长答案:是的,但前提是(且不限于):您的代码不使用其他编译器不可用的编译器特定内容您的代码所依赖的库可用并在其他编译器上正确设置您的代码不调用/依赖未定义或实现定义的行为其他编译器使用与您当前的编译器大致相同的C标准进行编译。我会在想到的时候添加更多到列表中。 关于使用多个编译器编译C代码,我们在StackOverflow上找到一个类似的问题:

c - NtDll是否真的导出C运行时函数,并且可以在我的应用程序中使用它们吗?

我在Windows10计算机上查看了NtDll导出表,发现它导出了标准的C运行时函数,例如memcpy,sprintf,strlen等。这是否意味着我可以在运行时通过LoadLibrary和GetProcAddress动态调用它们?是否可以保证每个Windows版本都适用?如果是这样,可以完全删除C运行时库(仅使用NtDll中的CRT函数),从而使我的程序更小? 最佳答案 绝对没有理由调用这些由NtDll导出的未记录的函数。Windows将所有必需的C运行时函数导出为标准系统库(即Kernel32)中记录的包装器。如果您绝对不能链接

c++ - 我的程序找不到boost库

我尝试编写作为Boost测试库示例的代码:#includeBOOST_AUTO_TEST_CASE(test){BOOST_CHECK(true);}我构建了源码,得到了执行文件test.exe。我尝试执行该文件,但收到一条错误消息。Theprogramcan'tstartbecauseboost_unit_test_framework-vc80-mt-1_44.dllismissingfromyourcomputer.Tryreinstallingtheprogramtofixthisproblem.但是,我已经在我的boost库目录中准备好该文件。这个案例有什么问题?背景:对于我的

c++ - 用于从二进制文件中提取图标的 C/C++ 库

我正计划为Windows构建一个热键激活的应用程序启动器。我打算让它成为一个弹出式图标网格,然后您可以在其中单击并启动所需的内容。我希望它能自动扫描开始菜单和桌面以查找程序快捷方式并对其进行分类。但是,我不确定如何从快捷方式/实际二进制文件中进行图标检索过程,我想知道是否有任何C/C++库可以处理这类事情?如果没有,我将如何处理? 最佳答案 我想你想使用ExtractAssociatedIcon见http://msdn.microsoft.com/en-us/library/ms648067%28v=VS.85%29.aspx

c++ - 如何实现打印功能?

大多数时候,当我需要标准库中没有实现的特定功能时,我会尝试自己实现它。我还创建静态库来使用和重用代码。所以我想写一个独立于标准库的测试程序。该程序缺少打印功能。打印通常是计算机程序的主要部分。putchar()或cout这样简单的打印函数如何用C或C++实现?我的代码:#defineTRUE1#defineFALSE0typedefintINT_32;typedefunsignedintsize_t;structblock{INT_32v;size_tx;};voidf1(structblock*s);intf2(void*addr);intmain(void){structblock

c++ - 在 Windows 7 上编译和运行 GTK+ 应用程序

系统:Windows7,32位,GTK2.24.10,mingw我正在尝试编写基本的helloworld.c类型的基于GTK的应用程序。但是,它没有运行。这些是我遵循的步骤。安装MinGW。下载GTK+一揽子服务。提取C:\gtk文件夹中的内容。打开cmd,进入C:\gtk\bin目录,运行pkg-config--cflags--libsgtk+-win32-2.0它打印编译标志列表和链接你的库项目到。复制它们并创建一个bath文件,如下所示。设置VAR=FLAGS开始命令其中VAR=GTK,FLAGS=上一个命令(pkg-config)的输出。当你想编译文件时使用命令:gccfoo.

c - 没有它们如何获取 GetProcAdress 和 LoadLibrary?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion假设我没有导入.lib库我希望一切都以原始方式进行,通过手动编写调用(如汇编或纯c)GetProcAdressLoadLibrary是winapidll的一部分通常加载dll并获取指针对于我需要调用这两个函数的函数,但是因为我没有得到它们我可以用什么来获得它们?这有点像悖论,可能可以通过其他一些机制来解决,但是这里我缺乏知识,我不知道这个机制是什么,有人可以解释一下吗?

c++ - 寻找一个 C++ 库来自动更新应用程序

我已经用C++创建了一个程序,但我希望该程序每月自动下载并安装更新,并且对用户不可见。我该怎么做? 最佳答案 尝试Omaha来自谷歌。他们将它用于他们自己的大部分产品,例如Chrome。 关于c++-寻找一个C++库来自动更新应用程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4643137/

C Hello world : Code Blocks IDE, Windows 上的 MinGW C 编译器

当您创建新的C项目时,我无法让CodeBlocksIDE编译它创建的helloworldC程序。我已经安装了MinGW,它被IDE识别了。但是当我尝试构建时,我得到以下输出:--------------Build:DebuginTestC3(compiler:GNUGCCCompiler)---------------mingw32-gcc.exe-Wall-g-cC:\Users\jody\codeblocks\testc3\TestC3\main.c-oobj\Debug\main.omingw32-g++.exe-obin\Debug\TestC3.exeobj\Debug\ma

c - Linux和Windows程序有何不同

Closed.Thisquestionneedstobemorefocused。它当前不接受答案。想改善这个问题吗?更新问题,使其仅关注editingthispost的一个问题。6年前关闭。Improvethisquestion我在GCC中编译了一个小的“HelloWorld”程序,并在Linux中工作。然后,我在程序中添加了.exe扩展名,以查看它是否与Windows兼容。但这没有用。是什么原因导致该程序无法在Windows中运行。基本上,二进制和汇编指令与在Windows和linux下编译的程序相同(如果未使用特定于操作系统的库)。操作系统只需将程序加载到RAM中,处理器就会执行该