Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
stream
Сообщений: n/a
#1

Клиент-серверное приложение для сети - C++

05.08.2008, 21:03. Просмотров 1179. Ответов 5
Метки нет (Все метки)

я пишу приложение для работы в сети,
которое должно быть и сервером и клиентом,
и решил сделать функции для сервера и клиента в разных DLL...
ну вроде сделал всё как надо, но когда вызываю функции из DLL,
в уже запущеной проге, ошибка, что память по такому-то адресу
не может быть прочитана ...
ну я добавил простых функций типа сложения двух чисел,
они нормально вызываются и работают, но добавление в функцию
какого-нибудь messagebox-а или функции WSAStartup сразу же выдаётся такая же ошибка ...
ну ладно ... если кто-нибудь понимает, что я делаю не так,
буду рад их услышать ... заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2008, 21:03     Клиент-серверное приложение для сети
Посмотрите здесь:

Как можно написать клиент-серверное приложение, работающее в локальной сети? - C++
Как можно написать клиент-серверное приложение работающее в локальной сети? Ну например на одном из компютеров стоит сервер а на остальных...

Клиент-серверное приложение. - C++
Как то попытался сделать данную фишку, но не получается. Задача такова: Клиент-серверное приложение. Данный файл лежит в папке с...

Клиент-серверное приложение - C++
Ребят вот нашел программу клиент-серверное приложение но она работает под Linuxом, помогите пожалуйста переделать под Windows. ...

Клиент серверное приложение - C++
Ребят вообщем нужно написать клиент серверное приложение в консоле. Как писать с чего начать понятия не имею, программу не прошу что-бы...

Клиент-серверное приложение - C++
Здравствуйте! Возможно, я задаю вопрос не в том разделе, но специализированного по виртуальным машинам не нашёл. Есть сервер,...

Клиент-серверное приложение - передача потокового видео на сервер - C++
Прошу помощи. Суть такова нужно написать приложение клиент(с++)(win/linux) сервер(php) которое будет захватывать и передавать видео на...

Клиент-серверное приложение "автосалон" - C++
Стоит задача написать лабу примерно следующего содержания: реализовать клиент-серверное приложение "автосалон". клиент будет отображать...

Клиент-серверное приложения, получение даты с сервера - C++
Ребята, я С++ вообще не знаю, но пишу на php+mysql. Вот мне интересно узнать, на С++ можно сделать сервер+клиент приложение? Задача...

Клиент для vk.com - C++
Всем привет) Изучаю с++ недавно, написал вот простой интерпретатор, теперь хочу написать что-нибудь посложнее, возникла идея написать...

код сервера и клиент для онлайн игры - C++
Всем привет кому не жалко дайте код сервера и клиент для онлайн игры что бы обменивались даными как в полноценой онлайн игре желательно на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
07.08.2008, 06:28     Клиент-серверное приложение для сети #2
Привет !

>ну вроде сделал всё как надо ...
;-) ну есои бы всё как надо, то наверно и вопросов бы не возникло ?
Объясняй подробнее, к чему функции обращаются, с какими параметрами ...
А то получается типа : почему когда я вызываю printf она не работает ?
printf(a, b, c); ... :-)))

Удачи Andir!
stream
Сообщений: n/a
08.08.2008, 01:02     Клиент-серверное приложение для сети #3
ну вот например кусок одной из функций в DLL:
Код
SOCKET InitSock()
{
	WSADATA WSAData;

	if (WSAStartup(MAKEWORD(2,2), &WSAData) != 0)
	{
		//... (сообщение об ошибке)
	}

	SOCKET s = socket(AF_INET, ...);

		//... (проверка на ошибки)

	return s;

}
а вот так она допустим вызывается:
Код
hLib = LoadLibraryEx( 'client.dll', 0, DON'T_RESOLVE_DLL_REFERENCES );

if ( hLib )
{
	INITSOCK fpInitSock = (INITSOCK)GetProcAddress( hLib, 'InitSock' );

	if ( fpInitSock )
	{
		SOCKET sClient = (*fpInitSock)();

		// ... (и т.д. и т.п.)
и после вызова дебагер показывает мне кучу вопрос
типа неизвестные данные

а если в DLL создать простую функцию типа
Код
int Multi(int a, int b)
{
	return a*b;
}
то всё работает!!! она нормально вызывается и считает произведение
stream
Сообщений: n/a
08.08.2008, 01:07     Клиент-серверное приложение для сети #4
короче, посмотрел я на то, что написал выше и понял в чём ошибка!
больше не буду вслепую копировать код из своих старых прог

глупая ошибка!!!

интересно кто-нибудь видит почему такой пример не будет работать
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
08.08.2008, 08:01     Клиент-серверное приложение для сети #5
Привет !

Ну вот а ты боялся ...
Первое что бросается в глаза ... Если это в С++ то искажение имён ...
Код
extern 'C' ...
Второе, это соглашение о вызове (хотя оно и не обязательно, но правила хорошего тона не помешают ...)
Второе, это то что запрещены внешние ссылки, а насколько я вижу
хотя бы функция WSAStartup из какой-то dll (что-то типа WS2_xx.dll, неохота в MSDN лезть ;-)) )
Больше вроде ничего ...

Удачи Andir!
stream
Сообщений: n/a
08.08.2008, 08:33     Клиент-серверное приложение для сети #6
Andir,

искажение имён и соглашение о вызове это всё да,
просто когда пример писАл забыл про это
тем более, если б с ними были проблемы,
то почему тогда простые функции работали ...

ну, а вот явно запретить внешние ссылки и вызывать
функциии из внешних модулей это конечно я тормозил...
Yandex
Объявления
08.08.2008, 08:33     Клиент-серверное приложение для сети
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru