标签: c++builder

为什么新组件向导不显示任何祖先类?

我正在尝试在RAD Studio XE2中创建新的VCL组件.我使用C++ Builder或Delphi得到了相同的结果:

新组件向导不显示祖先

如何获取VCL组件列表?我试过"修复设置",但没有成功.

ide delphi vcl c++builder

3
推荐指数
1
解决办法
616
查看次数

在 C++ 中将 std::string 转换为 Unicode 字符串

我有个问题。我需要将字符串类型转换为 unicode。我知道方法像

string.c_str();
Run Code Online (Sandbox Code Playgroud)

但它在我的代码中不起作用。

我有功能

void modify(string infstring, string* poststring)
Run Code Online (Sandbox Code Playgroud)

在其中我需要在备忘录中显示 infstring。像一个

Form1->Memo1->Lines->Add("some text "+infstring.c_str()+" some text");
Run Code Online (Sandbox Code Playgroud)

但编译器说我“E2085 无效指针添加”

我该如何解决我的问题?

c++ string unicode c++builder

3
推荐指数
1
解决办法
2万
查看次数

C++编译器是否有效隐式实例化模板类的所有成员函数?

假设我有一个公共类和一个私有实现类(例如PIMPL模式),我希望用一个带有checked delete的模板智能指针类来包装私有类,如下所示:

PublicClass.h

class PrivateClass;

// simple smart pointer with checked delete
template<class X> class demo_ptr
{
public:
    demo_ptr (X* p) : the_p(p) { }
    ~demo_ptr () {
        // from boost::checked_delete: don't allow compilation of incomplete type
        typedef char type_must_be_complete[ sizeof(X)? 1: -1 ];
        (void) sizeof(type_must_be_complete);
        delete the_p;
    }
private:
    X* the_p;
};

// public-facing class that wishes to wrap some private implementation guts
class PublicClass
{
public:
    PublicClass();
    ~PublicClass();

private:
    demo_ptr<PrivateClass> pvt;
};
Run Code Online (Sandbox Code Playgroud)

PublicClass.cpp

#include "PublicClass.h"

class PrivateClass
{ …
Run Code Online (Sandbox Code Playgroud)

c++ windows c++builder c++11

3
推荐指数
1
解决办法
477
查看次数

C++在win 8中自动运行

使用旧技术赢取8来自动运行我的程序是否正确?

我没有赢8来测试,所以我希望有人已经知道了.

当PC重新启动时,我的程序没有启动,这会导致什么?

c++ windows c++builder

3
推荐指数
1
解决办法
192
查看次数

bcc32 - 没有控制台子系统,也没有Windows子系统

我使用旧的bcc32(borland 5.5)(我知道这是非常古老的编译器,但不要告诉我,我不应该使用它)

我可以使用控制台或Windows子系统进行编译.

我不想用windows子系统编译,我想控制台只有main()ad没有"windows.h"包含(从那里我调用我自己的库打开窗口并自己内部处理消息泵)

它的工作原理,但问题只是当我用控制台子系统编译时,出现丑陋的蓝色控制台窗口,我不需要它

所以我认为我只需要没有windows子系统编译,没有控制台子系统编译,只是让我的程序在一些原始模式下编译(两者都没有控制台创建,没有WinMain入口点 - 怎么做?

winapi linker c++builder

3
推荐指数
1
解决办法
353
查看次数

链接器错误"包含无效的OMF记录"

在我编译的C++ Builder中,我得到了

[ilink32 Error] Error: 'C:\PATH\TO\A\LIB\INCLUDED\IN\THE\PROJECT\ALIBRARY.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
Run Code Online (Sandbox Code Playgroud)

当我用实用程序转换.lib时coff2omf,新的lib会丢失重要的功能.

builder coff c++builder omf

3
推荐指数
1
解决办法
8913
查看次数

如何在 Borland Builder XE 中同时显示头文件和源文件?

有人知道如何在 builder XE 中同时显示头文件和源文件吗?

我知道我可以在它们之间切换,但我宁愿每个文件都有一个选项卡。

谢谢

usability c++builder c++builder-xe

3
推荐指数
1
解决办法
1708
查看次数

在单独的线程中运行VCL

我现在有一个相当罕见的情况.我有一个直接与Windows的消息队列交互的应用程序.此应用程序还使用LuaJIT运行外部Lua脚本.我想为这些脚本设置调试工具,因此我创建了一个普通的VCL应用程序,然后将其转换为DLL库.当第一个应用程序启动与库的调试会话时,此DLL创建一个分离的线程,其中整个VCL工具被初始化并运行.

procedure TDebuggerThread.Execute;
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm (TMainForm, MainForm);
  Application.Run;
end;
Run Code Online (Sandbox Code Playgroud)

VCL是否完全支持以这种方式执行?哪个线程会TThread.Synchronize (Proc: TThreadProc)发送消息?

Inb4"向VCL和主应用程序的消息将会混乱" - 它们不会因为每个线程都有自己的消息队列.

此外,您可以在此处查看来源.(也许)有问题的库被命名LuaDebugger.在地方适当的客户端(Core,Engine,Client)我目前使用的LuaDefaultHost,这是一个相当简单的控制台应用程序,要求调试器和行为大多喜欢lua.exe.与控制台客户端,调试器的工作原理出奇的顺利-我遇到的唯一问题是,如果我关闭控制台窗口,而库仍在使用,VCL抛出"窗口句柄不再有效"(俄文:/).如果我让客户端按照预期的方式完成与调试器的交互,一切都很顺利.可能Windows.TerminateThread在单元定稿期间调用应该解决这个问题.

delphi multithreading vcl c++builder

3
推荐指数
1
解决办法
1286
查看次数

为什么TDateTime计算涉及变体?

下面的简单示例代码,包含生成的汇编程序.我很惊讶生成的代码涉及变体.Delphi当然不具备.

TDateTime t1;
TDateTime t2;
...
int x =  2 * (t2 - t1);
Run Code Online (Sandbox Code Playgroud)

生成的代码.

Unit23.cpp.18: int x =  2 * (t2 - t1);
00401814 66C745C82400     mov word ptr [ebp-$38],$0024
0040181A 8D45DC           lea eax,[ebp-$24]
0040181D E852180000       call $00403074
00401822 50               push eax
00401823 FF45D4           inc dword ptr [ebp-$2c]
00401826 8D55A8           lea edx,[ebp-$58]
00401829 8D45A0           lea eax,[ebp-$60]
0040182C E8FB000000       call System::TDateTime::operator -(const System::TDateTime &)
00401831 DD5D94           fstp qword ptr [ebp-$6c]
00401834 8D5594           lea edx,[ebp-$6c]
00401837 8D45EC           lea eax,[ebp-$14]
0040183A E8F1180000       call …
Run Code Online (Sandbox Code Playgroud)

c++builder variant tdatetime

3
推荐指数
1
解决办法
78
查看次数

如何捕获突然被毁坏的TThread

My Environment: Rad Studio XE4 using C++
Run Code Online (Sandbox Code Playgroud)

我正在使用TThread开发一个软件.最近,我遇到了一个问题,即在程序启动几天后,TThread突然被破坏.

在TThread中,线程使用Synchronize()方法更改表单(例如TLable)的显示.我想知道这可能会引起一些问题.

我正在记录线程中的几个部分,以便我可以找到问题的原因.但是当我检查日志时,我只能发现突然调用了TThread的析构函数.

TThread的FreeOnTerminate设置为true.

该程序运行两个线程.只有一个线程突然被破坏,另一个线程即使在问题发生后仍在工作.

我正在寻找如何解决这类问题的原因.

delphi c++builder tthread

3
推荐指数
1
解决办法
112
查看次数