草庐IT

file_str

全部标签

c++ - 我可以跨 DLL 边界传递 FILE 对象吗?

我有一个C++框架,其中一些计算被委托(delegate)给(有时是自动生成的)C函数或具有外部“C”链接的C++函数。这些是低级例程,必须以极快的速度和最小的开销进行评估,它们通常驻留在单独的共享对象/DLL中。他们目前的签名是这样的:intmy_generated_function(constdouble*input,double*output,double*work);它将驻留在共享库中,在POSIX上使用dlopen或在Windows上使用LoadLibrary加载。在POSIX上使用dlsym(handle,"my_generated_function")或在Windows上

c++ - IShellLink::SetIconLocation 将我的图标路径转换为错误的 %Program Files%

有谁知道如何纠正这种行为?目前,当我们的安装程序安装我们的应用程序时,它会获取一个IShellLink,然后使用我们的快捷方式图标(在开始菜单和桌面中)所需的数据加载它,然后使用IPersistFile::Save写出快捷方式。问题是通过IShellLink::SetIconLocation为图标指定的路径被转换为使用%ProgramFiles%...这...对于x64,是错误的。我注意到许多其他32位软件在x64下都存在此问题-但后来我假设他们自己使用%ProgamFiles%作为其.lnk创建代码中的文字元素.但是,似乎是IShellLink迫使这个错误存在,而我没有解决方法(或者

c++ - (makefile 错误)RTNETLINK 回答 : File exists

这是我的生成文件:delay:tcqdiscadddeveth0rootnetemdelay0mstest4_s_delay:delay./a.out10101231120|teeserver_delay.txt但是,我在执行makefile时遇到以下错误:root@superwii-laptop:/home/superwii/Desktop/Amogh#maketest4_s_delaytcqdiscadddeveth0rootnetemdelay0msRTNETLINKanswers:Fileexistsmake:***[delay]Error2我无法克服这个错误。请帮忙。

c++ - char * 和 const_cast<char*>(string.c_str()) 有什么区别

我使用外部库来处理两个应用程序之间的udp(OSC)通信。为了格式化将要发送的消息,库需要一个char*但我从UI中得到一个字符串,我必须转换它。当我处理代码的其他部分时,udp部分是硬编码的:char*endofMess="fromsetEndMess";并且工作正常。我认为使用我的字符串很容易让它工作并写道:std::strings="fromsetEndMess";char*endofMess=const_cast(s.c_str());但与第一个例子不同,我收到的消息格式正确,现在我只收到乱码。有人知道它可能来自哪里吗?谢谢!马修编辑:我使用的代码:每次OSCVal发送消息的方

c++ - 制作 : No rule to make a header file?

我正在尝试使用名为BigInt的库创建一个项目。我的文件结构是:/Users/wen/Projects/challenge/fibonacci3/fibonacci3.cpp/Users/wen/Projects/challenge/fibonacci3/Makefile/Users/wen/Projects/include/bigint//Users/wen/Projects/include/bigint/MakefileFibonacci3Makefile截至LD_FLAGS=CC_FLAGS=#Includelibrariesinclude/Users/wen/Projects/

C++ 系统不使用 "source files"

在C++编程语言(第4版)§15.1中,Stroustrup指出:Afileisthetraditionalunitofstorage(inafilesystem)andthetraditionalunitofcompilation.Therearesystemsthatdonotstore,compile,andpresentC++programstotheprogrammerassetsoffiles.遗憾的是,他没有提供更多信息。您知道此类系统的任何示例吗?编辑:我的意思是,如果您知道任何实际免费、商业、开源或其他C++实现,它们不会像我们习惯的那样处理文件。我想知道:为什么会有

c++ - 'Windows.h : No such file or directory"error when changing Platform Toolset to v140_xp

这个问题在这里已经有了答案:HowtotargetWindowsXPinMicrosoftVisualStudioC++[duplicate](2个答案)关闭4年前。我尝试为WindowsXP编译一个应用程序;正常的可执行文件给出错误:"...isnotavalidWin32application."我读到我可以通过将平台工具集更改为VisualStudio2015-WindowsXP(v140_xp)来创建与XP兼容的可执行文件,但是当我这样做然后尝试编译时,它给了我以下错误:Cannotopenincludefile:'Windows.h':Nosuchfileordirector

c++ - size_t 数据类型可以安全地用于 str.find() 吗?

我一直在查看字符串的find()函数的代码,它们将结果存储在数据类型为size_t的变量中。然而,据我所知,size_t是一个无符号整数,如果find()没有找到预期的字符串,它会返回-1。例如,如果我有strings="asdf";size_ti=s.find("g")cout它给我4294967295。但是,如果我用int数据类型替换size_t,它会给我-1。奇怪的是,当我像这样进行比较时strings="asdf";size_ti=s.find("g")if(i==-1){do_something;}无论i是size_t还是int都有效。那我用哪个?int还是size_t?

c++ - 当字符串保存在一个集合中时,c_str() 是否仍然有效

我有一个旧项目需要维护,其中使用了constchar*。出于某种原因,我想保留大量运行时生成的字符串。所以我创建了一个全局变量std::set来保存这些字符串。当生成新字符串时,除了添加到集合中外,我还会返回并发送newString.c_str(),它将保存在其他地方。例如。std::setg_stringDB;voidArchieveString(AStruct*container,constchar*temporaryString){autoit=g_stringDB.emplace(temporaryString);container->validString=it->first

c++ - C++中c_str()的线程安全

我创建了一个类SettingsClass,它包含静态字符串,这些静态字符串包含MySQLC++连接器库要使用的数据库连接字符串(例如主机名、数据库名、用户名、密码)。每当函数需要连接到数据库时,它都会对这些静态字符串调用.c_str()函数。例如:ClassSettingsClass{public:staticstringhostname;...}SettingsClass;stringSettingsClass::hostname;//AfunctionthatneedstoconnecttotheDBuses:driver=get_griver_instance();driver-