Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не хочет работать VC. Как это понять? 
:(
    Опции темы
NiJazz
  Дата 14.9.2003, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Такой вот код. Тут используются АПИ функции. При команде compile Visual C++ ошибок не выдаёт, а как только надо сделать build *.exe, выдаёт три ошибки. Вот такие:

///////////////////////////////////////////////////////////////////////////////////
--------------------Configuration: test - Win32 Debug--------------------
Linking...
test.obj : error LNK2001: unresolved external symbol _NetApiBufferFree@4
test.obj : error LNK2001: unresolved external symbol _NetUserGetGroups@28
Debug/test.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

test.exe - 3 error(s), 0 warning(s)
///////////////////////////////////////////////////////////////////////////////////

#include <windows.h>
#include <stdio.h>
#include <lm.h>
#include <string.h>

int main()
{
DWORD EntriesRead = 0;
DWORD TotalEntries = 0;
LPGROUP_USERS_INFO_0 pBuf = NULL;
WCHAR wszUserName[UNLEN+1];
LPCWSTR servername = NULL;
char *UserName = NULL;
DWORD index;
FILE *f = NULL;

strcpy(UserName, "NiJazz");

MultiByteToWideChar(CP_ACP, 0, UserName,
strlen(UserName)+1, wszUserName,
sizeof(wszUserName)/sizeof(wszUserName[0]) );

NetUserGetGroups(servername,
wszUserName,
0,
(LPBYTE*)&pBuf,
MAX_PREFERRED_LENGTH,
&EntriesRead,
&TotalEntries);


for (index = 0; index <= EntriesRead; index ++)
{
fwprintf(f, L"%s\n", pBuf->grui0_name);
pBuf++;
}
NetApiBufferFree(pBuf);
fclose(f);
return 0;
}

PM MAIL   Вверх
Baa
Дата 14.9.2003, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Правильно, потому как ты либу не прилинковал...
после инклудов впиши: #pragma comment (lib, "netapi32.lib")


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
RAN
Дата 14.9.2003, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Включи netapi32.lib

Меню Project -> Setting...
В setting for... выбери All Configurations
Закладка Link
Выбури Category - General
В поле Object/library modules в конце через пробел допиши netapi32.lib
Теперь собирай

Другой способ:
Меню Project->Add to Project->Files (или правая кнопка мыши на названии проекта в навигаторе и там Add Files to Project...)
Ищешь файл netapi32.lib в директории lib

Но второй способ обычно используют с нестандартными библиотеками.
PM MAIL ICQ   Вверх
RAN
Дата 14.9.2003, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Baa, минута в минуту. Правильно, можно и так.
Только работать всё равно не будет в программе ошибки.
PM MAIL ICQ   Вверх
NiJazz
Дата 15.9.2003, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



RAN, а какие именно ошибки? Ну то, что файл не открыт был для записи - не суть. Дело в том, что exe-файл создался, но выдаёт ошибку такую: "Инструкция по адресу "0x00401241" обратилась к памяти по адресу "0xcccccccc". Память не может быть "written". Что это такое?

PM MAIL   Вверх
Baa
Дата 15.9.2003, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Посмотри в отладчике, в каком месте она у тебя вылетает, и исправь smile.gif


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
mr.DUDA
Дата 15.9.2003, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Куда-то ты пишешь по указателю, который не проинициализирован (ни на что конкретное не показывает) - первая мысль, пришедшая в голову. smile.gif


--------------------
user posted image
PM MAIL WWW   Вверх
RAN
Дата 15.9.2003, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



mr.DUDA тебе уже одну ошибку указал. Другая ошибка, это использование L"......" в fwprintf. Эта функция работает с char*, поэтому она получит пустую строку (так как первый байт будет 0). Тебе надо перевести pBuf->grui0_name в char*, а потом char* передать в fwprintf.
PM MAIL ICQ   Вверх
RAN
Дата 15.9.2003, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



И ещё. Я никогда не пользовался NetUserGetGroups, но из описания понял, что он возвращает в EntriesRead кол-во записей. Если там, то в for условие должно быть <, а не <= (или index = 1, а не 0).

Может ещё что-то...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0647 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.