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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2013, 20:23   #1
smartbutterfly
Новичок
Джуниор
 
Регистрация: 19.11.2013
Сообщений: 1
По умолчанию Проблема с вызовом функции из своей длл

Помогите срочно, плиз. Написал функцию, при тестировании вызывал из exeшника, и там все нормально запускалось, а если эта же функция из dll вызывается сторонней программой, то уже не работает.
Функция проверяет регистрационные данные. То есть сли есть такая запись, возвращается true иначе false. Но почему-то только в exeшнике работает. При вызове из dll всегда возвращает true, независимо от данных, которые в нее пихаю.

Вот код:

Код:
__declspec(dllexport) bool __stdcall key_check(char* agent, char* allowed_record)
{
                // некий сайт
		char* base = "http://www.********.ru/"; 

		char* slash = "/";
		char* end = ".txt";
		char* path = new char[256];

		strcpy(path, base);
		strcat(path, agent);
		strcat(path, slash);
		strcat(path, allowed_record);
		strcat(path, end);
	
		HINTERNET session, file;
		session = InternetOpenA(agent, PRE_CONFIG_INTERNET_ACCESS, 0, 0, 0);
		file = InternetOpenUrlA(session, path, 0, 0, 0, 0);

		char* requested_fuck = "404 Not Found";
		char* requested_error = "was not found on this server";

		char buf[6400];
		unsigned long len, offs = 0;
		do { 
		if(!InternetReadFile(file, buf, sizeof(buf), &len)) return false;
		if(len>0) //if(len>=0)
			{
		if(strstr(buf, requested_fuck) != NULL || strstr(buf, requested_error) != NULL) return false;
		if(strstr(buf, allowed_record) != NULL) return true;	
		else offs += len;
   }
   else
   {
      //  int error = GetLastError();
      InternetCloseHandle(file);
      InternetCloseHandle(session);
      Sleep(1000);
      session = InternetOpenA(agent, PRE_CONFIG_INTERNET_ACCESS, 0, 0, 0);
      file = InternetOpenUrlA(session, path, 0, 0, 0, 0);
      InternetSetFilePointer(file, offs, 0, FILE_BEGIN, 0);
		}
	}while (len);
InternetCloseHandle(file);
InternetCloseHandle(session);
	return false;
}

Последний раз редактировалось smartbutterfly; 19.11.2013 в 20:33.
smartbutterfly вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с вызовом функции Magnum4635 Общие вопросы C/C++ 2 26.10.2013 16:14
Проблема с вызовом функции Terikon JavaScript, Ajax 6 17.10.2013 19:11
Проблема с вызовом функции внутри Ajax archiolidius JavaScript, Ajax 0 12.12.2012 18:32
ошибка в макросе с вызовом функций длл norvik Microsoft Office Excel 2 22.07.2012 02:33
Проблема с вызовом функции B DLL doniyor Мультимедиа в Delphi 2 05.11.2009 16:14