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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2010, 08:20   #1
dimorik
Пользователь
 
Регистрация: 23.08.2008
Сообщений: 51
По умолчанию Где ошибка?

В общем такая проблема. Создаю пустой проект (Visual C++) , добавляю *.cpp файл и пишу в нем это:

Код:
#include "windows.h"

  //extern __stdcall SetCursorPos(int,int);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{




   // SetCursorPos(100,100);
	
  	return 0;
}
пока не открываю закоментированные строки компилируется на ура. Как только дело доходит до использования API функции, компилятор требует продекларировать её. а вот сделать этого никак у меня не получается.. подскажите в чем проблема если не трудно?! Каким будет код?

Последний раз редактировалось Stilet; 11.03.2010 в 08:41.
dimorik вне форума Ответить с цитированием
Старый 11.03.2010, 08:29   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

попробуйте добавить в начале
Код:
#pragma comment(lib,"user32.lib");
а вообще приведите именно текст ошибки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.03.2010, 08:42   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
пока не открываю закоментированные строки
А зачем ты эту строку вообще написал?
SetCursorPos ведь в windows.h должен лежать
Код:
#include <windows.h>
#include "stdafx.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{

    SetCursorPos(100,100);
	
  	return 0;
}
И все.
I'm learning to live...

Последний раз редактировалось Stilet; 11.03.2010 в 08:44.
Stilet вне форума Ответить с цитированием
Старый 11.03.2010, 12:40   #4
dimorik
Пользователь
 
Регистрация: 23.08.2008
Сообщений: 51
По умолчанию

Да, это понятно что так будет работать.. но в примерах на чистом С++ нет этого "stdafx.h" что это вообще такое? И можно ли без него обойтись? И почему мой код работает и без "stdafx.h" пока не вызываются API.
dimorik вне форума Ответить с цитированием
Старый 11.03.2010, 13:10   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в вашем коде не нужно extern делать
Код:
#include "windows.h"
//#pragma comment(lib,"user32.lib");
//если не выйдет попробуйте расскоментить

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{
     SetCursorPos(100,100);
     return 0;
}
и еще раз прошу, покажи точный текст ошибки, он больше скажет
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.03.2010, 13:18   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для чего нужен stdafx я знаю смутно, но он создается компилятором VS и крепится к проекту самостоятельно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2010, 13:29   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это предкомпилированный заголовок...поидее туда вклчаются директивы для задания некоторых св-в проекта или ресурсов.
его можно отключить(Пустой проект)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.03.2010, 06:52   #8
dimorik
Пользователь
 
Регистрация: 23.08.2008
Сообщений: 51
По умолчанию

Спасибо Пепел Феникса. Получилось все так как я хотел! Все работает! Просто VS я юзаю всего пару дней.. Ничего путем не знаю о ней. Нужно будет искать где-то хорошую литературу по ней.. Всем спасибо.
dimorik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка? T-dayne Помощь студентам 2 10.02.2010 16:52
Где ошибка??? beygul Помощь студентам 5 06.11.2009 21:00
Где ошибка? stas77 Microsoft Office Excel 11 02.11.2009 18:26
Где ошибка: Egik_net Microsoft Office Access 6 26.10.2009 00:43
Где ошибка? jarded Общие вопросы C/C++ 2 01.06.2007 15:10