Так что я пытался сделать свой собственный PAWN sdk для языка программирования D, я знаю, что уже есть PAWN sdk для D, но я просто хочу попытаться сделать это сам.Array структуры в C до D
У меня странная проблема, когда я преобразовать этот C код D:
struct tagAMX;
typedef cell (*AMX_NATIVE)(struct tagAMX *amx, cell *params);
typedef struct tagAMX_NATIVE_INFO {
const char *name;
AMX_NATIVE func;
} AMX_NATIVE_INFO;
и я преобразовать его в D-код:
struct AMX;
alias AMX_NATIVE = cell function(AMX* amx, cell* params);
struct AMX_NATIVE_INFO {
immutable(char)* name;
AMX_NATIVE func;
}
ли я написал это правильно ?, если код выглядит нормально, просто игнорируйте его.
Основная проблема здесь: в C
AMX_NATIVE_INFO PluginNatives[] =
{
{"HelloWorld", HelloWorld},
{0, 0}
};
Как я пишу, что на D? я попытался с:
AMX_NATIVE_INFO[] NativeInfo =
[
["HelloWorld", HelloWorld],
[0, 0]
];
Это просто дать мне ошибку:
function test.HelloWorld (AMX* amx, int* params) is not callable using argument types()
cannot implicitly convert expression ([0, 0]) of type int[] to AMX_NATIVE_INFO
Спасибо человеку, действительно, я пробовал и не работал, но я пробую его снова, увидев ваш ответ, затем работает lol, спасибо! –
Возможно, вы забыли принять адрес функции ('&'). Обратите внимание, что с D [дополнительные круглые скобки] (http://dlang.org/spec/function.html#optional-parenthesis) просто запись 'HelloWorld' означает вызов этой функции без аргументов. – sigod