| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > _GetProcessMemoryInfo@12 |
| Автор: lexus1234567 20.11.2012, 18:39 | ||
| Здравствуйте! Пытаюсь написать программу, которая считывала бы память о каком либо процессе. Использую функцию GetProcessMemoryInfo из библиотеки psapi.h. Но при компиляции вылетает ошибка линковки: 1>WorkInfo.obj : error LNK2001: неразрешенный внешний символ "_GetProcessMemoryInfo@12" 1>C:\Documents and Settings\777\Мои документы\Visual Studio 2010\Projects\ProcessInfo_new\Release\ProcessInfo.exe : fatal error LNK1120: 1 неразрешенных внешних элементов Странно еще то, что у меня есть старая версия программы, в которой этой ошибки нет, а код один и тот же. Может что то с настройками проекта? Вот код файла WorkInfo.cpp (этот файл содержит в себе класс для работы с данными):
|
| Автор: volatile 20.11.2012, 23:31 |
| линкер не может найти psapi.lib 1.проверьте путя 2.попробуйте переключить динам.<=>стат. линковка 3.очистите папку релиз/дебаг, пересоберите проект. |
| Автор: Dem_max 21.11.2012, 04:04 |
| Все гораздо проще если внимательно читать MSDN http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683219(v=vs.85).aspx http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682050(v=vs.85).aspx |
| Автор: lexus1234567 21.11.2012, 16:31 | ||
Я читал эту статью в MSDN несколько раз, да и как в примере сказано: "add Psapi.lib to TARGETLIBS". Вот я и добавил эту либу. Только я не знаю что такое TARGETLIBS. И может надо еще dll подключить? Вы это имели ввиду? |
| Автор: feodorv 21.11.2012, 16:37 | ||
Наверное, Dem_max имел в виду:
|
| Автор: lexus1234567 21.11.2012, 16:55 | ||||
А как это сделать? Я пробовал это запихнуть в командную строку проекта, но мне тогда выдает компилятор ошибку. Куда деть эту строчку? |
| Автор: volatile 21.11.2012, 17:57 |
это просто дефайн, из коммандной строки. тоже самое будет, если перед "#include psapi.h" поместить #define PSAPI_VERSION 1 |
| Автор: Dem_max 21.11.2012, 18:23 |
| Внимательно читаем что написано на картинке |
| Автор: lexus1234567 21.11.2012, 19:04 | ||
Мне более внимательное чтение msdn ничего не даст. Все равно больше того, что я уже понял я не пойму. Так что если можете помочь, помогите, пожалуйста! |
| Автор: lexus1234567 22.11.2012, 20:19 |
| Решено! Подключил dll и использовал от туда функцию. Всем спасибо большое за помощь!!! |
| Автор: Dem_max 19.12.2012, 19:27 |
| Добавлю еще, если для RAD2010 стоит #define PSAPI_VERSION 1, это все равно не поможет, линкер будет линковать к kernel32.dll Поможет только динамическая загрузка psapi.dll и вызов функции. |