Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2009, 21:22   #1
LukS
Пользователь
 
Аватар для LukS
 
Регистрация: 22.01.2009
Сообщений: 20
Лампочка Ошибка линвки (функция sprintf)

Помогите. Где не пишу функцию sprintf(), везде ошибка линковки:

Цитата:
Linking...
LIBC.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Release/update_game.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
В include вроде всё включил:

Цитата:
#include <winsock.h>
#include <wininet.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <tlhelp32.h>
причем функция не работает даже с такой строкой:
Код:
char buf[0x100]; sprintf(buf, "test");
Помогите пожалуйста, я новичек в кодинге на C++
LukS вне форума Ответить с цитированием
Старый 22.01.2009, 21:54   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Хм, а что это?
Код:
char buf[0x100];
В квадратных скобках вроде размерность массива надо указывать...

А причем тут winsock.h?
Компилятор у вас какой?
MaTBeu вне форума Ответить с цитированием
Старый 22.01.2009, 22:04   #3
LukS
Пользователь
 
Аватар для LukS
 
Регистрация: 22.01.2009
Сообщений: 20
По умолчанию

Ну мало-ли, может sprinf там (я про winsock). Компилятор от MS Visual C++ 6.0. Я не то скопировал.
Код:
char buf[255];
Вычитал, что у меня проблемы с ATL: http://support.microsoft.com/kb/q291952/ но только не понял что там написано... точнее понял, но у меня все как там написано так и сделано (/subsystem:console)
LukS вне форума Ответить с цитированием
Старый 22.01.2009, 22:09   #4
FunDuck
Пользователь
 
Регистрация: 22.01.2009
Сообщений: 13
По умолчанию

Можно весь листинг...
FunDuck вне форума Ответить с цитированием
Старый 22.01.2009, 22:12   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Функция sprintf находится в файле stdio.h, остальные убирайте, если он вам не нужны.
Причем тут ATL? Выкладывайте весь код. Будем смотреть.
MaTBeu вне форума Ответить с цитированием
Старый 22.01.2009, 22:13   #6
LukS
Пользователь
 
Аватар для LukS
 
Регистрация: 22.01.2009
Сообщений: 20
По умолчанию

Эм... К сожалению не могу. Но проблема точно в sprintf. Когда убираю (закоментирую) эту функцию, проблема исчезает. Листинг конкретно функции:

Код:
void DownLoad_File(void)
{
	// Создаём переменные
	WSADATA wsaData;
	
	// Стартуем WinSock
	if (WSAStartup(WINSOCK_VERSION, &wsaData)) 
	{
		Debug("winsock not bi initialized !\n");
		WSACleanup();
		return;
	}

	// Опять переменные
	SOCKET sock;
	SOCKADDR_IN addr;
	ULONG iaddr;
	char host[0x100];

	// Устанавливаем переменные
	strcpy(host, st.dl_file.host);

	// Создаём сокет
	sock = socket(AF_INET,SOCK_STREAM,0);
	if (sock == INVALID_SOCKET) return;

	//Определяем адрес сервака
	iaddr = inet_addr(host);
	if(iaddr == INADDR_NONE) //Адрес - имя сервака
	{
		HOSTENT *ph;
		ph = gethostbyname(host);
		if (!ph) return;
		memcpy(&addr.sin_addr,ph->h_addr_list[0],sizeof(IN_ADDR));
	} else				//Адрес - IP
		memcpy(&addr.sin_addr,&iaddr,4);
	addr.sin_family = AF_INET;
	addr.sin_port   = st.dl_file.port;

	// Соединяемся с сервером
	if (connect(sock,(PSOCKADDR)&addr,sizeof(SOCKADDR))) return;

	// Буфера
	char buf1[0x100];

	// Установка значений 
	sprintf(buf1, "HEAD %s HTTP/1.0\r\n", st.dl_file.path);

// Далее еще не написал...

	// Закрываем сокет
	closesocket(sock);
}
Все остальные библиотеки (winsock и т.д.) мне нужны.
LukS вне форума Ответить с цитированием
Старый 22.01.2009, 22:21   #7
LukS
Пользователь
 
Аватар для LukS
 
Регистрация: 22.01.2009
Сообщений: 20
По умолчанию

Вот код, точно такая же ошибка:

Код:
#include <stdio.h>
#include <windows.h>

#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:WinMain")

int WINAPI WinMain(HINSTANCE a,HINSTANCE b,LPSTR c,int d)
{
	char test[255];
	sprintf(test, "test");
	return 0;
}
LukS вне форума Ответить с цитированием
Старый 22.01.2009, 22:25   #8
FunDuck
Пользователь
 
Регистрация: 22.01.2009
Сообщений: 13
По умолчанию

LukS, это консольное приложение ????
FunDuck вне форума Ответить с цитированием
Старый 22.01.2009, 22:28   #9
LukS
Пользователь
 
Аватар для LukS
 
Регистрация: 22.01.2009
Сообщений: 20
По умолчанию

FunDuck, нет, Win32 Application. Без оболочки (т.е. работает в фоне).
LukS вне форума Ответить с цитированием
Старый 22.01.2009, 22:31   #10
FunDuck
Пользователь
 
Регистрация: 22.01.2009
Сообщений: 13
По умолчанию

sprintf(&test[0], "test"); а если так...?
FunDuck вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Функция в VB asd48 Помощь студентам 1 25.12.2008 23:29
Функция Lemo Помощь студентам 1 02.12.2008 00:24
Функция в c++ JOFRIF Помощь студентам 1 08.05.2008 18:30
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50