我一直在使用C++ Builder 2010更新旧的遗留项目构建代码,以便使用C++ Builder 10 Seattle进行编译.我主要不得不改变路径,很多dupIgnore
来TDuplicates::dupIgnore
,重新导入像一些组件MSXML和MSMQ等.
首先是主要项目以bpl和dll的形式使用的一堆子项目,最后是主项目的代码编译.
但是......它没有链接:P
[ilink32 Error] Fatal: Unable to open file 'TYPES.OBJ'
Run Code Online (Sandbox Code Playgroud)
我试图找到有关潜在问题的信息,许多提及确保在Delphi编译器设置下的单元范围内System
提供.但这已经存在于这个项目中.还有什么可能导致这个?
有关信息.现在使用"经典"bcc32编译器编译.
包含路径:
$(BDSINCLUDE)\windows\vcl;$(BDSINCLUDE)\dinkumware;
图书馆路径:
$(BDSLIB)\$(PLATFORM)\$(Config);$(BDSLIB)\$(PLATFORM)\Release\psdk;
Run Code Online (Sandbox Code Playgroud) 我正在C++ Builder 10 Seattle中编译应用程序,并尝试使用OpenSSL进行RSA工作.
我按照本教程:
这是代码:
#include <stdio.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>
bool generate_key()
{
int ret = 0;
RSA *r = NULL;
BIGNUM *bne = NULL;
BIO *bp_public = NULL, *bp_private = NULL;
int bits = 2048;
unsigned long e = RSA_F4;
// 1. generate rsa key
bne = BN_new();
ret = BN_set_word(bne,e);
if(ret != 1){
goto free_all;
}
r = RSA_new();
ret = RSA_generate_key_ex(r, bits, bne, NULL);
if(ret != 1){
goto free_all;
}
// 2. save public …
Run Code Online (Sandbox Code Playgroud) TGrid
我有一个继承自名为 的自定义网格控件TFmGrid
。该控件在 Rad Studio 10 西雅图更新一中运行良好。TFmGrid
我最近升级到 10.1 Berlin,并开始注意到当我运行应用程序和设计器时,我的控件上显示此错误消息:
尚未为类 TFmGrid 注册 TStyledPresentationProxy 的后代。也许有必要将 FMX.Grid.Style 模块添加到使用部分
下图显示了错误消息如何显示在我的网格控件上:
我首先按照消息的建议进行操作,然后添加#include <FMX.Grid.Style.hpp>
到我的控件的头文件中TFmGrid
,但这似乎没有执行任何操作。
因此,就尝试注册后代而言,TStyledPresentationProxy
我不确定从哪里开始。我找到了有关以下方法的文档:
尝试使用指定名称或指定的控件类和控件类型组合来注册表示代理类。
所以我假设我需要使用这个方法或至少类似的方法,但我不明白我应该如何调用这个方法。
但这又带来了一个问题:我在哪里调用这段代码?
我的自定义控件在其命名空间中有一个方法Register()
,我相信该方法是在创建控件时由 IDE 自动生成的:
namespace Fmgridu
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TFmGrid)};
RegisterComponents(L"Kalos FM Controls", classes, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
我需要在那里调用一些东西来注册 的后代吗TStyledPresentationProxy
?解决这个问题的正确方法是什么?