DllImport по сравнению с объявляют в VB.NET

Любой, кто находится в выпуске LTS, использует следующую команду:

brew postinstall node@6
15
задан Peter Mortensen 21 July 2013 в 08:47
поделиться

2 ответа

Declare - это действительно попытка сохранить синтаксис P / Invoke , который был бы более знаком в Visual Basic 6.0 пользователи переходят на VB.NET . Он имеет многие из тех же функций, что и P / Invoke, но маршалинг определенных типов, в частности строк, очень разные и могут вызвать путаницу у людей, более знакомых с правилами DllImport.

Я не совсем уверен, о чем говорится в документации с «редким» различием. Я часто без проблем использую DllImport в своем коде как из VB.NET, так и из C #

В общем, я бы использовал DllImport вместо Declare, если вы не используете Visual Basic 6.0. Документация и примеры для DllImport намного лучше, и есть много инструментов, предназначенных для создания объявлений DllImport.

Я бы использовал DllImport вместо Declare, если вы не используете Visual Basic 6.0. Документация и примеры для DllImport намного лучше, и есть много инструментов, предназначенных для создания объявлений DllImport.

Я бы использовал DllImport вместо Declare, если вы не используете Visual Basic 6.0. Документация и примеры для DllImport намного лучше, и есть много инструментов, предназначенных для создания объявлений DllImport.

12
ответ дан 1 December 2019 в 01:05
поделиться

На мой взгляд, поскольку это ключевое слово не выглядит устаревшим и т. Д. По сравнению с тем, что я искал, просто используйте ключевые слова времени компиляции, а не атрибуты.

Кроме того, когда вы используете Declare , вам не нужно писать конечную функцию . Преимущество этого состоит в том, что вы можете создать целый модуль объявлений импорта функций построчно, без необходимости вставлять код с помощью DllImport и End Function .

Когда вы объявляете с помощью ключевого слова Declare , компилятор в любом случае обрабатывает эту функцию как Shared , поэтому к ней можно получить доступ через другие внешние объекты.

Но я думаю, что в текущем VB.NET они оба адресованы одной и той же цели и без разницы в производительности - никаких гарантий на этот счет.

Итак, мой вывод: используйте Declare вместо DllImport , особенно читая то, что вы цитировали, Microsoft заявила , что его следует использовать в редких случаях.

7
ответ дан 1 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: