标签: conditional-compilation

条件Java编译

我是一名长期从事Java的程序员.我正在Eclipse中开发一个Java Blackberry项目.问题 - 有没有办法在项目中引入不同的配置集,然后基于这些编译稍微不同的代码?

在Visual Studio中,我们有项目配置和#ifdef; 我知道Java中没有#ifdef,但可能是文件级别的东西?

java eclipse conditional-compilation

20
推荐指数
5
解决办法
2万
查看次数

18
推荐指数
1
解决办法
5424
查看次数

在 C++ 类成员函数上使用 #ifdef 保护是否安全?

假设您有以下 C++ 类的定义:

class A {
// Methods
#ifdef X
// Hidden methods in some translation units
#endif
};
Run Code Online (Sandbox Code Playgroud)

这是否违反了班级的一个定义规则?有哪些相关危害?我怀疑如果使用成员函数指针或虚函数,这很可能会中断。否则使用安全吗?

我在 Objective C++ 的上下文中考虑它。头文件包含在纯 C++ 和 Objective C++ 翻译单元中。我的想法是使用 OBJC 宏保护具有 Objective-C 类型的方法。否则,我必须对标头中的所有 Objective-C 类型使用 void 指针,但这样我就失去了强类型,并且必须在整个代码中添加丑陋的静态强制转换。

c++ objective-c conditional-compilation objective-c++ one-definition-rule

18
推荐指数
3
解决办法
1822
查看次数

有没有办法强制正确拼写功能?

假设我在 中定义了以下功能Cargo.toml

[features]
my_feature = []
Run Code Online (Sandbox Code Playgroud)

以下代码位于src/lib.rs

[features]
my_feature = []
Run Code Online (Sandbox Code Playgroud)

我如何强制功能字符串与显式定义和隐式可用功能的列表相匹配,以便Cargo.toml避免例如拼写错误?

macros conditional-compilation rust rust-cargo

18
推荐指数
1
解决办法
733
查看次数

Python中的条件编译

如何在Python中进行条件编译?

它使用DEF吗?

python conditional-compilation

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

是否可以有条件地编译为.NET Framework版本?

我可以回想一下,在使用MFC时,您可以通过检查_MFC_VER宏来支持多个版本的MFC框架.

我现在正在使用.NET 4做一些事情,并希望在几个地方使用Tuple,但仍然保持其他一切3.5兼容.

我想做的事情如下:

#if DOTNET4
    public Tuple<TSource, TResult> SomeMethod<TSource, TResult>(){...}
#else
    public KeyValuePair<TSource, TResult> SomeMethod<TSource, TResult>(){...}
#endif
Run Code Online (Sandbox Code Playgroud)

.net c# conditional-compilation .net-4.0

17
推荐指数
4
解决办法
7606
查看次数

如何在objective-c ++中编译特定文件,在objective-c中编译项目的其余部分

我目前正在忙于一个项目,我需要使用外部附件来阅读Mifare 1k标签.

附件提供了一个SDK,用(Objective?)C++编写,我按照提供的指令将XCode设置为"Compile sources as:Objective-C++",并在"Other linkers flags"中添加"-Obj-C++".

SDK编译好了,但麻烦的是我已经在项目中使用了几个库(例如ASIHTTPRequest,JSONKit,...),并且因为这些库中的那些新设置而导致编译问题.如果我切换回以前的设置,我会在阅读器的SDK中遇到编译问题

问题是:有没有办法只从SDK中编译类作为C++,而项目的其余部分作为objective-c?

编辑: SDK文件仅包含.h(和链接库)

谢谢你的帮助,迈克

xcode compilation objective-c conditional-compilation objective-c++

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

如何在Delphi中定义版本"和up"ifdefs?

我正在努力让Log4D在Delphi XE4中工作,并且因为在uses子句中找不到Contnrs而得到一些编译错误,除非我把它移到了它定义的ifdef之外.

{$IFDEF DELPHI5_UP}
  Contnrs,
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

一些调查发现ifdef是在一个包含的文件Defines.inc中定义的,它有一个块用于每个"支持"的delphi版本,它会停止几个版本:

例如:

{$IFDEF VER170}  { Delphi 2005 }
{$DEFINE DELPHI9}
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI5_UP}
{$DEFINE DELPHI6_UP}
{$DEFINE DELPHI7_UP}
{$ENDIF}

{$IFDEF VER180}  { Delphi 2006 }
{$DEFINE DELPHI10}
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI5_UP}
{$DEFINE DELPHI6_UP}
{$DEFINE DELPHI7_UP}
Run Code Online (Sandbox Code Playgroud)

因此,虽然继续复制并粘贴用于Delphi 2006的ifdef并创建一个Delphi XE4块也很容易......但这似乎是一个不优雅的解决方案.这绝对不是未来的证明......你现在必须更新这个文件的每个新版本,因此Delphi 4中没有的一些代码不会让别人的15岁以上的遗留代码爆炸.

所以我想知道是否有更好的方法来进行条件编译,以便在编译该行时确实只检查是否有"Delphi 5或更高版本",而不是这种格式需要更新每个新版本的delphi .

delphi conditional-compilation

17
推荐指数
3
解决办法
4377
查看次数

如何以编程方式更改VBA项目的条件编译属性

我目前正在开发一个VBA代码生成器/注入器,它通过使用VBA可扩展性将VBA功能添加到Excel工作簿.一切正常.

但是,注入的原始代码使用条件编译,引用一些全局条件编译参数:

在此输入图像描述

有没有什么办法可以编程修改/添加VBA项目的条件编译参数?

我检查了VBProject的所有属性但找不到任何东西.

vba properties conditional-compilation excel-vba vbe

16
推荐指数
3
解决办法
4152
查看次数

使用#ifdefs和#define可选择将函数调用转换为注释

有可能做这样的事情

#ifdef SOMETHING
#define foo //
#else
#define foo MyFunction
#endif
Run Code Online (Sandbox Code Playgroud)

这个想法是,如果定义了SOMETHING,那么对foo(...)的调用将成为注释(或者不会被评估或编译的内容),否则它将成为对MyFunction的调用.

我见过__noop,但我不相信我可以使用它.

编辑(S):

我不认为我真的可以在这里使用宏,因为MyFunction采用可变数量的参数.

此外,我想这样做,所以参数不被评估!(所以做一些像评论我的MyFunction的主体并没有真正给我我需要的东西,因为参数仍将被评估)

c c++ conditional-compilation c-preprocessor

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