|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.06.2014, 19:12 | #1 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
Как использовать сторонние функции из внешнего хидера (*function)(arg1,arg2);
Что-то я не понимаю, как это работает. Подключен внешний .h файл со своими функциями,структурами и т.д.
Код:
Код:
Далее функция,использующая структуру и аргументы: Код:
int *gpuHandles[NVAPI_MAX_PHYSICAL_GPUS]={NULL}; А что делать со структурой? Нужно создавать свою структуру внутри программы, затем делать так: mystructure= new NV_DISPLAY_DRIVER_MEMORY_INFO? |
02.06.2014, 19:26 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Ну я думаю как-то так:
Код:
I'm learning to live...
|
05.06.2014, 18:46 | #3 | |||
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
Сделал на Visual C++, почему-то работают все функции кроме этой злосчастной GetMemoryInfo.
Код:
Цитата:
Цитата:
Цитата:
|
|||
05.06.2014, 20:08 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
А в чем выражается это "неработает"?
I'm learning to live...
|
09.06.2014, 13:42 | #5 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
Выдает ошибку,что несовместимая структура. Собственно уже 2-ю неделю тормознулся на этом месте и дальше никак.
Смысл в том,что функция GetMemoryInfo работает со структурой NV_DISPLAY_DRIVER_MEMORY_INFO. В самом nvapi.h если его посмотреть, такой структуры нет. Зато есть NV_DISPLAY_DRIVER_MEMORY_INFO_V1 и NV_DISPLAY_DRIVER_MEMORY_INFO_V2. Нужно скорее всего первая. И задача - сконвертировать структуру NV_DISPLAY_DRIVER_MEMORY_INFO в NV_DISPLAY_DRIVER_MEMORY_INFO_V1. Или наоборот. Трудно сказать, почему Нвидиа так сделали всё через одно место... |
09.06.2014, 14:29 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
Документацию читать не пробовали?
Написано, что надо делать так: NV_DISPLAY_DRIVER_VERSION version = {0}; version.version = NV_DISPLAY_DRIVER_VERSION_VER; status = NvAPI_GetDisplayDriverVersion(NVAPI _DEFAULT_HANDLE, &version); И, кстати, написано, что эта функция объявлена obsolete. |
09.06.2014, 18:05 | #7 | |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
Причем тут NV_DISPLAY_DRIVER_VERSION, если речь о структуре NV_DISPLAY_DRIVER_MEMORY_INFO?
Вот кое-что интересное нашел, правда на немецком: http://www.entwickler-ecke.de/printv...05dbac8c101c08 В целом понятно. Чувак написал на Делфи программу со всеми функциями, и у него тоже вылазила это чертова ошибка Цитата:
const NV_GPU_USAGES_VER = NvU32(SizeOf(NV_USAGES) or ($10000)); NV_GPU_MEMORY_INFO_VER = NvU32(SizeOf(NV_MEMORY_INFO) or ($20000)); NV_GPU_COOLER_SETTINGS_VER = NvU32(SizeOf(NV_COOLER_SETTINGS) or ($20000)); NV_GPU_COOLER_LEVELS_VER = NvU32(SizeOf(NV_GPU_COOLER_LEVELS) or ($10000)); Но это для Делфи. А у меня C++ и этих констант вообще нет. |
|
09.06.2014, 18:55 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
NV_DISPLAY_DRIVER_MEMORY_INFO info;
info.version = NV_DISPLAY_DRIVER_MEMORY_INFO_VER; ... NvAPI_GPU_GetMemoryInfo(Тут первый парам, &info); |
09.06.2014, 22:55 | #9 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
Да, получилось наконец. А то бы я ещё полгода ковырялся))
Код:
Код:
|
11.06.2014, 18:42 | #10 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
Добьем тему до конца, опять мучаю NVAPI, теперь на Delphi и использую динамический импорт функций. Загружаю DLL, затем GetProcAddress и nvapi_QueryInterface. Ну вообщем понятно, не буду на этом заострять внимание.
Код:
Прототипы: Код:
Код:
Код:
Код:
Сначала думал,может видеокарта не поддерживает датчики вентилятора. Но GPU-Z всё отображает нормально |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как использовать UNICODE функции? | dolphin705 | Общие вопросы Delphi | 6 | 04.04.2013 00:21 |
Как использовать функции для формирования ссылок в формулах? | Buchhalter | Microsoft Office Excel | 5 | 24.08.2012 18:29 |
Можно ли задать глобальную переменную из функции или как-то напрямую использовать память для хранения переменных из функции? | Suny-o | Общие вопросы Delphi | 2 | 14.06.2012 11:45 |
Как в Си использовать двумерный массив в качестве аргумента функции? | Hornet_nsk | Помощь студентам | 7 | 05.02.2012 09:46 |
Как использовать функции FindWindow и CloseWindow? | __Demon__ | Общие вопросы C/C++ | 4 | 14.08.2009 15:29 |