草庐IT

Electron-store

全部标签

c++ - malloc 和堆 : extra memory for storing the size and linked list information?

我有一个关于heap和malloc的简单问题:当我们使用malloc分配一些内存空间时,如下所示:int*p;p=(int*)malloc(10*sizeof(int));它实际上在堆中分配了10个单词。但是,我的问题是:实际使用的内存空间真的是10个字?或者还有其他额外的空间需要存储内存大小的值?或者,甚至,因为堆的结构是链表,是否有其他内存空间用于存储指向堆中列表的下一个节点的地址? 最佳答案 它完全依赖于实现。a)它可以在每个分配的节点之前有几个字节,其中包含节点的大小、指向下一个节点的指针,可能还有前一个节点指针和节点类型。

Electron实战(二):将Node.js和UI能力(app/BrowserWindow/dialog)等注入html

文章目录设置webPreferences参数安装`@electron/remote`main进程中初始化html中使用dialog踩坑参考文档上一篇:Electron实战(一):环境搭建/HelloWorld/打包exe设置webPreferences参数为了能够在html/js中访问Node.js提供fs等模块,需要在newBrowserWindow(config)的时候,设置一些参数://LuckyTools/index.jsconstmainWindow=newBrowserWindow({icon:iconPath,width:800,height:600,webPreferences

c++ - std::atomic_store 和 std::atomic_exchange 不交换

根据en.cppreference.com,std::atomic_exchange和std::atomic_store等价于线程安全的std::swap。但这不是我使用g++或clang++得到的行为。Problemliveoncoliru.(见下文)它虽然打印了这个:std::atomic_storea:0x1ed2c300b:0x1ed2c501a:0x1ed2c501b:0x1ed2c501std::atomic_exchangea:0x1ed2c500b:0x1ed2c301a:0x1ed2c301b:0x1ed2c301这是为什么?难道我做错了什么?我是否误读了文档?代码l

c++ - 为什么 clang++ 报告与 "value stored to ' .. .' during its initialization is never read"的结构化绑定(bind)?

我有以下测试用例:testcase("[room]exits"){auto[center,east,north,south,west]=make_test_rooms();check_eq(center->east(),east);check_eq(center->north(),north);check_eq(center->south(),south);check_eq(center->west(),west+1);}当我编译它时,clang++(clangversion5.0.1(tags/RELEASE_501/final))报告:room.cpp:52:7:note:Valu

c++ - 'prior value shall be accessed only to determine the value to be stored' 是什么意思?

来自Prasoon'sanswer关于“未定义的行为和序列点”的问题,我不明白以下是什么意思..thepriorvalueshallbeaccessedonlytodeterminethevaluetobestored.作为示例,以下引用在C++中具有未定义的行为:a[i]=i++;intx=i+i++;尽管那里给出了解释,但我不理解这部分(我认为我正确理解了答案的其余部分)。我不明白上面的代码示例有什么问题。我认为这些编译器具有明确定义的步骤,如下所示。a[i]=i++;a[i]=i;i=i+1;intx=i+i++;x=i+i;i=i+1;我错过了什么?“仅应访问先前值以确定要存储

c++ - 数组 : Storing Objects or References

作为一名Java开发人员,我有以下C++问题。如果我有类型A的对象并且我想将它们的集合存储在一个数组中,那么我应该只存储指向对象的指针还是存储对象本身更好?在我看来,存储指针更好,因为:1)通过将对象的指针设置为null,可以很容易地删除对象2)节省空间。 最佳答案 指针还是对象?在C++中不能将引用放在数组中。您可以制作一个指针数组,但我仍然更喜欢容器和实际对象而不是指针,因为:没有机会泄漏,异常安全更容易处理。它并没有减少空间——如果你存储一个指针数组,你需要对象的内存加上指针的内存。我唯一提倡将指针(或智能指针会更好)放入容器

c++ - 为什么 weak_ptr 没有 atomic_{store,load}?

为什么C++标准包含atomic_store或atomic_load重载shared_ptr而不是weak_ptr?这只是一个疏忽,还是有没有为weak_ptr提供原子操作的实际原因? 最佳答案 这似乎是一个疏忽。HerbSutter为atomic_shared_ptr/atomic_unique_ptr/atomic_weak_ptr提出了一个C++(17?)标准设计提案,该文档还解释了现有方法的缺点,其中包含用于shared_ptr的免费函数atomic_load/atomic_store:http://www.open-std

c++ - Electron 应用程序和 Win32 native 桌面应用程序之间的进程间通信

我正在尝试在Windows上实现桌面native应用程序和Electron应用程序之间的进程间通信以进行分配(操作系统)。我是这个领域的新手,找不到相关链接。我考虑过的选项是:1.TCP2.HTTP服务器3.串口4.命名管道NamedPipes似乎是正确的,因为electron使用命名管道实现其IPC。有一个net模块可用,它实现了看起来相似的套接字。我可以在native应用程序中编写服务器。你们觉得这听起来正确吗?还有更好的选择吗?任何有助于我学习的建议都会很有用。 最佳答案 查看库node-ipchttps://github.c

c++ - load-acquire 应该立即看到 store-release 吗?

假设我们有一个简单的变量(std::atomicvar)和2个线程T1和T2我们有以下代码T1:...var.store(2,mem_order);...和T2...var.load(mem_order)...我们还假设T2(load)执行时间比T1晚123ns(按照C++标准的修改顺序)(店铺)。我对这种情况的理解如下(针对不同的内存顺序):memory_order_seq_cst-T2load有义务加载2.如此有效,它必须加载最新值(就像RMW操作的情况一样)memory_order_acquire/memory_order_release/memory_order_relaxed

javascript - 是否可以使用 C++ 作为 Electron.js 的后端?

我的任务是制作简单的C++应用程序,它将信息存储到二进制文件中,然后需要对这些信息进行简单的操作,例如编辑、删除、读取。我想使用Electron创建桌面应用程序来设计UI,并使用C++来处理信息。是否有可能以及如何将C++包含到Electron中,是否有任何教程?提前致谢。 最佳答案 Electron使用的是nodejs,因此您仍然可以将cpp代码打包为node模块,然后将其用作electron应用程序中的依赖项。查看HelloWorld示例here这基本上是这样做的:module.exports.hello=()=>'world'