Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Delphi和C+之间共享通用定义+;项目 是否有一种优雅的方式来共享Delphi和C++(VisualStudio)项目?之间的通用符号定义?_C++_Delphi - Fatal编程技术网

在Delphi和C+之间共享通用定义+;项目 是否有一种优雅的方式来共享Delphi和C++(VisualStudio)项目?之间的通用符号定义?

在Delphi和C+之间共享通用定义+;项目 是否有一种优雅的方式来共享Delphi和C++(VisualStudio)项目?之间的通用符号定义?,c++,delphi,C++,Delphi,根据具体情况,可以定义或不定义符号。显然,在两个项目中都可以定义符号,但您可能在一个项目中注释掉它,而在另一个项目中忘记它(反之亦然) 如果这是可能的,我猜符号将需要放入一个.h或.inc文件中,并包含在两个项目中 // Delphi {$DEFINE COMMON_SYMBOL} //... SOME_CONSTANT = {$IFDEF COMMON_SYMBOL} 80 {$ELSE} 40 {$ENDIF}; // C++ #define COMMON_SYMBOL //... #if

根据具体情况,可以定义或不定义符号。显然,在两个项目中都可以定义符号,但您可能在一个项目中注释掉它,而在另一个项目中忘记它(反之亦然)

如果这是可能的,我猜符号将需要放入一个.h或.inc文件中,并包含在两个项目中

// Delphi
{$DEFINE COMMON_SYMBOL}
//...
SOME_CONSTANT = {$IFDEF COMMON_SYMBOL} 80 {$ELSE} 40 {$ENDIF};

// C++
#define COMMON_SYMBOL
//...
#ifdef COMMON_SYMBOL
    #define SOME_CONSTANT 80
#else
    #define SOME_CONSTANT 40
#endif

在上述代码中,如果定义了
COMMON\u SYMBOL
,则
SOME\u CONSTANT
为80,否则为40。

以下是一些有帮助的链接:

  • 如果需要将C++头文件转换为Delphi,可以尝试.< <> LI>如果需要将Delphi源转换为C++头文件,您可能需要自己创建这样的工具。我想这可能是一个好的开始

也许在两个项目中同时定义具有共享特定值的SOME_常量就足够了?那很容易。。。但是,通过预处理器本身有条件地定义预处理器符号是不可能的,我不确定这将如何工作,因为这两个编译器和IDE是完全不同的(Embarcadero和Microsoft)。。。不是不同的供应商让这件事变得困难。事实上,您正在处理两种不同的编程语言。即使在使用同一供应商生产的编译器时,在C++和F ^之间共享代码时也会遇到同样的问题。“这将如何工作”-什么?定义常量很容易,在C和Pascal中,数字常量的定义几乎相同:
NAME=VALUE;名称=值然后在现代Delphi中,您可以使用$IF检查这些常量,但在MS VC++中,您很难成为计算机程序员。创建一些工具来构建各种程序。向该工具传递必要的信息,并让它将这些定义传递给各种构建过程。