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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2011, 00:27   #1
nury
 
Регистрация: 16.01.2011
Сообщений: 9
Злость Беда с windows.h

Доброго времени суток, пишу программу для автоклика мышью по заданной координате. Среда MVS 2010 Pro. Скажу сразу пишу в этой среде в первые. До этого работала в дев. Проэкт формапликейшен.
Код Form1
Код:
#pragma once;
namespace sdfsdfsdf {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Сводка для Form1
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: добавьте код конструктора
			//
		}

	protected:
		/// <summary>
		/// Освободить все используемые ресурсы.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Button^  button1;
	protected: 

	private:
		/// <summary>
		/// Требуется переменная конструктора.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Обязательный метод для поддержки конструктора - не изменяйте
		/// содержимое данного метода при помощи редактора кода.
		/// </summary>
		void InitializeComponent(void)
		{
			this->button1 = (gcnew System::Windows::Forms::Button());
			this->SuspendLayout();
			// 
			// button1
			// 
			this->button1->Location = System::Drawing::Point(176, 139);
			this->button1->Name = L"button1";
			this->button1->Size = System::Drawing::Size(75, 23);
			this->button1->TabIndex = 0;
			this->button1->Text = L"button1";
			this->button1->UseVisualStyleBackColor = true;
			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(284, 262);
			this->Controls->Add(this->button1);
			this->Name = L"Form1";
			this->Text = L"Form1";
			this->ResumeLayout(false);

		}
#pragma endregion
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
			 mouse_event(0,0,0,0,0); //Беда!!!
			 
			 
			 
			 }
	};
}
Код хэдера

Код:
// sdfsdfsdf.cpp: главный файл проекта.
#include "stdafx.h"
#include "windows.h"
#include "Form1.h"
using namespace sdfsdfsdf;

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
	// Включение визуальных эффектов Windows XP до создания каких-либо элементов управления
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false); 

	// Создание главного окна и его запуск
	Application::Run(gcnew Form1());
	return 0;
}
Жирным обозначено что писала сама, всё остальное авто вставка среды.
Построение:
1>------ Построение начато: проект: sdfsdfsdf, Конфигурация: Debug Win32 ------
1>Построение начато 14.08.2011 2:25:31.
1>InitializeBuildStatus:
1> Создание "Debug\sdfsdfsdf.unsuccessfulbuild" , так как было задано "AlwaysCreate".
1>GenerateTargetFrameworkMonikerAtt ribute:
1>Целевой объект "GenerateTargetFrameworkMonikerAttr ibute" пропускается, так как все выходные файлы актуальны по отношению к входным.
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> sdfsdfsdf.cpp
1> Для всех выходных данных обновления не требуется.
1>CoreResGen:
1> Для всех выходных данных обновления не требуется.
1>ResourceCompile:
1> Для всех выходных данных обновления не требуется.
1>sdfsdfsdf.obj : error LNK2028: ссылка на неразрешенную лексему (0A000011) "extern "C" void __stdcall mouse_event(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long)" (?mouse_event@@$$J220YGXKKKKK@Z) в функции "private: void __clrcall sdfsdfsdf::Form1::button1_Click(cla ss System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@sdfsdfsdf@@$$ FA$AAMXP$AAVObject@System@@P$AAVEve ntArgs@4@@Z)
1>sdfsdfsdf.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" void __stdcall mouse_event(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long)" (?mouse_event@@$$J220YGXKKKKK@Z) в функции "private: void __clrcall sdfsdfsdf::Form1::button1_Click(cla ss System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@sdfsdfsdf@@$$ FA$AAMXP$AAVObject@System@@P$AAVEve ntArgs@4@@Z)
1>c:\users\thesacrament\documents\v isual studio 2010\Projects\sdfsdfsdf\Debug\sdfsd fsdf.exe : fatal error LNK1120: 2 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:05.31
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========





Помогите пожалуйста, я думаю что не правильно подключила windows.h но сколько не искала ни где нету в примерах полного описание где что писать.

Последний раз редактировалось nury; 14.08.2011 в 00:30.
nury вне форума Ответить с цитированием
Старый 14.08.2011, 01:11   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от nury Посмотреть сообщение
Проэкт формапликейшен.
Этот тип проекта подразумевает использование CLR, вам, скорее всего, оно не надо. Создайте проект с типом 'Win32 Application' и во время создания проекта установите опцию 'пустой проект'
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 14.08.2011, 07:54   #3
nury
 
Регистрация: 16.01.2011
Сообщений: 9
По умолчанию

Там нет Win32 Application. Самое похожее это окно win32 но прикрутить к нему форму не получается. Пишет что форма использует CLR и поэтому мол у вас ни чего не получится.
nury вне форума Ответить с цитированием
Старый 14.08.2011, 08:49   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

наверное в свойствах проекта стоит /clr : pure. поэтому пользоваться можно только managed функциями. так что рекомендую в свойствах проекта для Common Language Runtime support выбрать просто /clr.

Последний раз редактировалось f.hump; 14.08.2011 в 08:52.
f.hump вне форума Ответить с цитированием
Старый 14.08.2011, 10:12   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Студия - это вам не билдер, куда можно прикрутить все. Если используете WindowsForms Application, то забудьте про windows.h. Смотрите CLR API для использования мыши.

Если же вам нужно именно Win API функциями сделать, то забудьте про WindowsForms Application. Выбирайте Win32 project и пишите там что-угодно. Но надо знать Win API.
MaTBeu вне форума Ответить с цитированием
Старый 15.08.2011, 09:02   #6
nury
 
Регистрация: 16.01.2011
Сообщений: 9
По умолчанию

Сделала всё через консольное приложение, всё заработало. Уже даже написала половину нужной программы. Но там слишком много надо вводить. Кто нибудь может подсказать как сделать форму на CLR ,которая будет запускать консоль, которая находится в этом же проекте и перекидывать туда переменные (из формы в консоль вин 32). Или как нибудь сделать достойный интерфейс с поддержкой windows.h без CLR.

p/s огромное спасибо всем кто помог с предыдущей проблемой.
nury вне форума Ответить с цитированием
Старый 15.08.2011, 11:20   #7
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от nury Посмотреть сообщение
Или как нибудь сделать достойный интерфейс с поддержкой windows.h без CLR.
Использовать сторонние библиотеки, например Qt.
Но подавляющие большинство того, что бывает нужно, уже есть в библиотеках, этими средствами и нужно пользоваться, без использования windows.h
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 16.08.2011, 10:15   #8
nury
 
Регистрация: 16.01.2011
Сообщений: 9
По умолчанию

Спасибо всем
nury вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Беда с указателями Soundkilla Помощь студентам 5 08.03.2011 22:05
Беда с кодировкой As_Pushkin HTML и CSS 7 23.06.2010 20:46
беда Морячок Паскаль, Turbo Pascal, PascalABC.NET 3 05.06.2010 15:41
беда на форме lamerk Microsoft Office Access 2 29.11.2009 18:28