问题标签 [pchar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - 为什么 SetString 在 Delphi(使用 Unicode)中占用更少的内存?
这是 Delphi 2009,所以 Unicode 适用。
我有一些代码将字符串从缓冲区加载到 StringList 中,如下所示:
但是在一些修改过程中,我改变了我的逻辑,所以我最终添加了相同的记录,但是作为单独而不是通过 SetString 派生的字符串,即
我注意到 StringList 的内存使用量从 52 MB 上升到大约 70 MB。增幅超过 30%。
为了恢复较低的内存使用率,我发现我必须使用 SetString 创建要添加到我的 StringList 的字符串变量,如下所示:
检查和比较 S 和 SRecord,它们在所有情况下都完全相同。但是将 SRecord 添加到 MyStringList 比添加 S 使用更多的内存。
有谁知道发生了什么以及为什么 SetString 可以节省内存?
跟进。我不认为它会,但我检查只是为了确定。
两者都不:
也不
释放多余的空间。SetString 似乎需要这样做。
delphi - 在我的DLL中的Delphi中,我是否必须分配函数的返回pchar
我有一个 DLL,其中有一个返回 pchar 的函数。(为了避免不得不使用 borlndmm)我最初所做的是将一个字符串转换为 pchar 并返回它
但我 90% 的时间都得到了预期的结果,而其他时候我什么也得不到。
然后我开始思考我需要为 pchar 分配内存,并且我最初的方式是让 pchar 指向内存,这并不总是在最初调用函数时存在。所以我现在有了这个
但这让我不得不在我使用的程序端清理分配的内存
所以 64 美元的问题是:从 DLL 中的函数返回 PChar 时是否必须分配内存,或者我可以将其转换为 PChar 吗?
string - 如何正确使用 PChars 来改进此优化?
我有一个在我的应用程序中被大量调用的函数。它基本上是一个 csv 解析器,它“弹出”第一个值并将输入字符串更改为剩余的字符串。
我想尝试使用 PChars 优化这个例程。所以我想出了这个方法,但不幸的是我在结果输出中得到了奇怪的字符。我猜是因为指针不正确。
任何人都“指向”:) 我的方向正确吗?
c++ - 将 unsigned char *buf=NULL 转换为 Pascal?
我在 Borland Delphi 工作,我在 Borland C++ Builder 中有几行代码。我想将这些行翻译成 Delphi 源代码。
…………
我想用这个 buf 分配一个 PCHar 值;
delphi - 为什么例程需要在返回后将传递给它的 PChar(字符串的类型转换)保留在内存中?
为了消除复制缓冲区的开销,您可以将字符串强制转换为 PChar(如果您确定例程不需要 PChar 保留在内存中)。 http://docwiki.embarcadero.com/RADStudio/en/Passing_a_Local_Variable_as_a_PChar
我们有一个字符串,它会一直保留在内存中,直到它的引用计数减为 0,所以它不会在作用域中被删除。那么,为什么我们需要PChar
留在记忆中呢?PChar
是否有一些 API 函数需要与之前传递给另一个 API 函数的完全相同的引用?
特别是我正在考虑示例代码。因此,问题必须是“为什么例程需要传递给它的 PChar(字符串的类型转换)在它返回后保留在内存中?”。异步 i/o 例程,或在调用者返回后访问传递的 pchar 的异步方法,或由另一个线程修改全局字符串都是很好的理由。
delphi - 如何让 PChar 越过十六进制 00 到达 Delphi 中的文件末尾?
我正在解析非常大的文件(Unicode - Delphi 2009),并且我有一个非常有效的例程来使用 Stackoverflow 问题中概述的 PChar 变量:在 Delphi 中解析一行的最快方法是什么?
一切都很好,直到我遇到一个包含一些嵌入式 hex:00 字符的文件。这个字符表示 PChar 字符串的结束,我的解析在该点停止。
但是,当您加载文件时,如下所示:
然后你发现文件的大小要大得多。如果您使用记事本打开文件,它会加载到文件末尾,而不是像 PChar 那样在第一个 hex:00 处停止。
如何在仍然使用 PChar 解析的同时读到文件末尾,而不会减慢我的读取/解析速度?
c++ - 通过矢量* 函数 getnameinfo
如何将 vector* 类型的变量传递给 winsock2 的 getnameinfo 函数?
面对面最好问一下如何将vector*转换为PCHAR?
string - 询问用户并在消息接收器中发回响应
我想要求用户输入密码。由于有时在与运行 VCL 的主线程不同的线程中需要密码,因此我尝试向主窗口发送一条消息并询问密码。然后主窗口询问用户。
我如何询问用户:
我如何询问主窗口:
但是Password
之后PasswordBuffer
是空的。我究竟做错了什么?
delphi - 在 XE 中使用 pchar 数组作为参数调用外部 dll
我有一个在 delphi 6 中运行良好的 delphi 项目,但是当我升级到 XE 时它不起作用。我知道这与 delphi XE 中的新 unicode 类型有关,我尝试将参数的定义从 pchar 更改为 pansichar、ansichar 但到目前为止没有成功。谁能看到我做错了什么?我的项目在第三方 dll 中调用了一个函数,该函数的定义如下:
这就是我调用该函数的方式。
如果有人可以帮助我,我将不胜感激。
马里奥。