c***k 发帖数: 1589 | 1 早知道把问题说明白就好了
VC有个compiler extension:declspec(selectany)
declspec就是一个声明之类的东西,括号里面可以是各种东西
gcc没这个,但有一个类似的
__attribute__((weak))
因为有太多这样的东西了 (> 10000),所以我需要一个macro
#define declspec(selectany) __attribute__((weak))
但这样是不行的,因为macro里,括号表示argument
这样所有的declspec(阿猫阿狗)都会被替换了 |
|
X****r 发帖数: 3557 | 2 你其它那些阿猫阿狗准备怎么办?
要是阿猫阿狗的种类不多的话,你可以这么办:
#define declspec(x) declspec_##x
#define declspec_selectany __attribute__((weak))
#define declspec_dllimport declspec(dllimport)
#define declspec_dllexport declspec(dllexport)
其它阿猫阿狗同理。
不过你真的想要declspec(阿猫阿狗)维持原样?不是__declspec(阿猫阿狗)? |
|
s******n 发帖数: 21 | 3 Not quite understand your question... I was talking aout calling into
unmanaged(native) dlls from managed applications (.NET). I believe __
declspec( dllimport ) is a native C++ only attribute. |
|
k**********g 发帖数: 989 | 4 要記住這些是關鍵詞,在工作上遇到時再翻書。類似的還有declspec, align, va_arg,
__VA_ARGS__, stringify macro等。 |
|
k**********g 发帖数: 989 | 5 要記住這些是關鍵詞,在工作上遇到時再翻書。類似的還有declspec, align, va_arg,
__VA_ARGS__, stringify macro等。 |
|