Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Функции c# и C++ обертки? / 11 сообщений из 11, страница 1 из 1
07.02.2019, 18:51
    #39770804
Аниме Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
В C# функции это обертки над низкоуровневыми Win 32 API(API)?
Например: MessageBox.Show над int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType); и Registry.SetValue(keyName, "TestLong", 12345678901234, RegistryValueKind.QWord); над LSTATUS RegSetValueExA(HKEY hKey,LPCSTR lpValueName,DWORD Reserved,DWORD dwType,const BYTE *lpData,DWORD cbData);?

А C++ функции обернутые, напишите пример, а в заголовке Winreg.h функции это обертки над Win 32 API(API) или нет?

В c# все функции обертки? или какие то нет?напишите пример
В c++ напишите пример обернутых функций и своих


Модератор: Отредактировано
...
Рейтинг: 0 / 0
07.02.2019, 19:20
    #39770817
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Аниме ЛюбительВ C# функции это обертки над низкоуровневыми Win 32 API(API)?

Не совсем так. Байтовый код, порождаемый C#, вообще не в состоянии вызывать нативные
функции. Вместо этого нативные функции вызывает рантайм, интерпретирующий этот код. Так
что в данном случае можно говорить скорее не об "обёртке", а об "эмуляции".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.02.2019, 19:22
    #39770818
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Аниме ЛюбительА C++ функции обернутые, напишите пример, а в заголовке Winreg.h функции это обертки
над Win 32 API(API) или нет?
В данном случае это тоже не "обёртки", а прямой вызов функций API.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.02.2019, 19:26
    #39770819
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Dimitry SibiryakovБайтовый код, порождаемый C#, вообще не в состоянии вызывать нативные
функции. Вместо этого нативные функции вызывает рантайм, интерпретирующий этот код. Так
что в данном случае можно говорить скорее не об "обёртке", а об "эмуляции".

C# компилятор, там ничего не интерпретируется рантаймом.
Там компиляция сначала в ILasm "байткод", а во время работы при первом вызове метода компиляция в нативный код той платформы, под которой код исполняется.
...
Рейтинг: 0 / 0
07.02.2019, 19:49
    #39770822
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Dima Tво время работы при первом вызове метода компиляция в нативный код той платформы, под
которой код исполняется.

Ну да, то же самое делает, например, QEMU когда гостевая платформа отличается от хостовой.
Но можно ли при этом функции гостевой системы называть обёртками для функций хоста?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.02.2019, 19:53
    #39770825
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Аниме Любитель А C++ функции обернутые, напишите пример, а в заголовке Winreg.h функции это обертки над Win 32 API(API) или нет?
В Winreg.h прототип функции
Прототипом функции в языке Си или C++ называется объявление функции, не содержащее тела функции, но указывающее имя функции, арность, типы аргументов и возвращаемый тип данных.
Прототип используется на этапе компиляции для проверки типов и т.п., а во время выполнения вызывается непосредственно WinAPI функция.
...
Рейтинг: 0 / 0
07.02.2019, 20:02
    #39770827
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Dimitry SibiryakovDima Tво время работы при первом вызове метода компиляция в нативный код той платформы, под
которой код исполняется.

Ну да, то же самое делает, например, QEMU когда гостевая платформа отличается от хостовой.
Но можно ли при этом функции гостевой системы называть обёртками для функций хоста?

Нет. Тут двухшаговая компиляция. Первый шаг - платформонезависимый байткод.
Второй во время работы проги когда ты вызвал метод впервые - он компилируется в машинный код данной платформы (x86, x64, ARM), а при втором и последующих вызовах метода просто выполняется код, скомпилированный при первом вызове, т.е. накладные расходы на компиляцию только при первом вызове.
JIT-компиляция
...
Рейтинг: 0 / 0
07.02.2019, 21:40
    #39770856
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Аниме Любитель, я отредактировал твоё сообщение оставив только суть вопросов.
...
Рейтинг: 0 / 0
07.02.2019, 22:08
    #39770859
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
Аниме Любитель В c# все функции обертки?
Не все
То что вызывается через p/invoke обёрток в стиле MessageBox.Show не требует
...
Рейтинг: 0 / 0
08.02.2019, 00:56
    #39770881
Аниме Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
В winreg.h типа объявления функций WinAPI в не обернутом виде, а как чисто WinAPI, например MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType); и ссылается на динамическую библиотеку в системе(вроде user32.dll)?

Я правильно понял?

и p/invoke это типа использования api?
...
Рейтинг: 0 / 0
11.02.2019, 11:19
    #39772085
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции c# и C++ обертки?
В winreg.h типа объявления функций WinAPI в не обернутом виде, а как чисто WinAPI, например MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType); и ссылается на динамическую библиотеку в системе(вроде user32.dll)?

Я правильно понял?

Ну, да... и ?

и p/invoke это типа использования api?

Ну, использование, и что ?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Функции c# и C++ обертки? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]