Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 11041
∙ повысить рейтинг »
Micren
Статус: Профессор
Рейтинг: 1763
∙ повысить рейтинг »
Александр Чекменёв
Статус: Профессор
Рейтинг: 1332
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Microsoft .NET : C#

Номер выпуска:239
Дата выхода:20.01.2013, 12:00
Администратор рассылки:Alexey G. Gladenyuk (Управляющий)
Подписчиков / экспертов:58 / 25
Вопросов / ответов:3 / 3

Консультация # 186010: Здравствуйте, уважаемые эксперты! У меня возникли сложности с таким вопросом: Трeбуeтся нaписaть прoгрaмму нa C#, кoтoрaя oргaнизуeт прoвeрку нeсaнкциoнирoвaннoй мoдификaции exe-фaйлa слeдующим oбрaзoм: считывaeт чeтырeхбaйтoвoe слoвo в кoнцe фaйлa, сoдeржaщee сумму всeх бaйтoв этoгo фaйлa пo mоd 232 и срaвнивaeт eгo сoдeржимoe с рeaл...


Консультация # 119946: Здравствуйте уважаемые эксперты: Написал программу на C#, на моём компьютере она работает, всё отлично, в программе использую ActiveX компонент. Запускаю программу на другом компьютере, предварительно прописал ActiveX компонент: (regsvr32 camcontrol.ocx) в bat файле. При запуске выходит такое сообщение: Подробная...
Консультация # 173517: Здравствуйте, уважаемые эксперты! Допустим есть форма, на ней две кнопки. В редакторе кода есть класс. Необходимо, чтобы по нажатии на первую кнопку создавался экземпляр класса, а по нажатии на вторую, этот экземпляр использовался в каких-либо целях. Возможно ли такое сделать, и если да, то как? Я знаю, что можно экземпляр класса соз...

Консультация # 186010:

Здравствуйте, уважаемые эксперты! У меня возникли сложности с таким вопросом:
Трeбуeтся нaписaть прoгрaмму нa C#, кoтoрaя oргaнизуeт прoвeрку нeсaнкциoнирoвaннoй мoдификaции exe-фaйлa слeдующим oбрaзoм: считывaeт чeтырeхбaйтoвoe слoвo в кoнцe фaйлa, сoдeржaщee сумму всeх бaйтoв этoгo фaйлa пo mоd 232 и срaвнивaeт eгo сoдeржимoe с рeaльнoй суммoй.

Дата отправки: 12.05.2012, 12:38
Вопрос задал: Alex12 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Micren (Профессор):

Здравствуйте, Alex12!
Программа. Без проверки корректности структуры самого .exe файла.

Код :
using System;
using System.IO;
using System.Reflection;

namespace Application
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			// Имя файла для проверки передается в качестве аргумента коммандной строки
			// Если ничего не передано - вывести информацию об использовании
			if (args.Length == 0) {
				usage ();
			} else {
				// Перебор аргументов коммандной строки
				foreach (string file in args) {
					try {
						// Проверка файла
						checkFile (file);
					} catch (Exception ex) {
						Console.WriteLine ("При проверке файла({0}) возникло исключение: {1}", file, ex.Message);
					}
				}
			}
		}

		// Имя исполняемого файла сборки
		private static readonly string programFile = Path.GetFileName (Assembly.GetEntryAssembly ().Location);

		// Выводит информацию об использовании
		private static void usage ()
		{
			Console.WriteLine ("Использовать: {0} [имя файла] [имя файла] ...", programFile);
		}

		private const short sumLength = 4;

		// Проверка файла
		private static void checkFile (string path)
		{
			// Открытие потока в режиме чтения двоичных данных
			using (Stream stream = new FileStream (path, FileMode.Open, FileAccess.Read))
				using (BinaryReader binaryReader = new BinaryReader (stream)) {
					long length = stream.Length;
					if (length < 4) {
						throw new Exception (string.Format ("Длина файла менее {0}х байт", sumLength));
					}
					// Установим указатель на контрольную сумму
					stream.Seek (-sumLength, SeekOrigin.End);
					// Читаем контрольную сумму
					UInt32 orig = binaryReader.ReadUInt32 ();
					Console.WriteLine ("Сохраненная сумма(последние {1} байта файла): 0x{0:X8}", orig, sumLength);
					// Установим указатель на начало
					stream.Seek (0, SeekOrigin.Begin);
					// Сумма
					UInt32 sum = 0;
					Console.WriteLine ("Длина файла:{0}", length);
					try {
						while (length-- > sumLength) {
							// Читаем и суммируем
							sum += binaryReader.ReadByte ();
						}
					} catch (EndOfStreamException) {
					}
					Console.WriteLine ("Посчитана сумма: 0x{0:X8} (суммы {1}совпадают)", sum, sum == orig ? "" : "не ");
				}
		}
	}
}

Имя проверяемого .exe файла должно передаваться программе в виде параметра коммандной строки.
Пример работы:
Код :
>186010.exe C:\Windows\System32\csrss.exe 
Сохраненная сумма(последние 4 байта файла): 0x00000000
Длина файла:7680
Посчитана сумма: 0x0005CC66 (суммы не совпадают)

Консультировал: Micren (Профессор)
Дата отправки: 12.05.2012, 22:10

5
нет комментария
-----
Дата оценки: 13.05.2012, 12:26

Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 119946:

Здравствуйте уважаемые эксперты:

Написал программу на C#, на моём компьютере она работает, всё отлично, в программе использую ActiveX компонент.

Запускаю программу на другом компьютере, предварительно прописал ActiveX компонент: (regsvr32 camcontrol.ocx) в bat файле.

При запуске выходит такое сообщение:

Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.Reflection.TargetParameterCountException: Указанное число параметров не соответствует ожидаемому числу.
в System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
в ACTIVEXLib._DCamMonitor.Connect(String ip, String login, String password, Int32 param)
в AxACTIVEXLib.AxCamMonitor.Connect(String ip, String login, String password, Int32 param)
в WindowsApplication2.Form1.button3_Click(Object sender, EventArgs e) в I:PROGRAMMAПлан перехватокно сообщения estWindowsApplication2WindowsApplication2Form1.cs:строка 32
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Хочу заметить, что на моём компьютере всё работает отлично, не знаю что делать, может проблема в установленном фрэймворке... хотя версия совпадает

Дата отправки: 24.01.2008, 13:54
Вопрос задал: Кутубаев Нурлан Юсупович
Всего ответов: 1
Страница онлайн-консультации »


Консультирует DrakoN:

Здравствуйте, Кутубаев Нурлан Юсупович!
Насколько я понял это программа которой перехватывает видео с веб камеры у них класическая беда с потоками. Я говорю о видео потоках. И их выгрузке из памяти. Желательно бы вам поделиться этой библиотечкой и процедуркой где вы ее испоьзуете чтоб дорыться.

Все что могу сказать попытайтесь проверить что вы коректно закрываете свои класы после отработки. Ведь эта ошибка появляеться не при первом запуске верно ?

Нет фреймворки тут не причем. Помимо этого при вызове своего класса в методе New попытайтесь присвоить максимальное количество параметров которое позволяет библиотека. Есть веротность проблемы при инициализации. Помимо прочего напичкайте программу Try Catch и перехватите строчку на которой вылетает ошибка.

Ну это основные рекомендации.Дальше только когда увижу библиотеку слету тут ниче не скажешь

Regards
Max

Консультировал: DrakoN
Дата отправки: 25.01.2008, 03:10
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 173517:

Здравствуйте, уважаемые эксперты!
Допустим есть форма, на ней две кнопки. В редакторе кода есть класс. Необходимо, чтобы по нажатии на первую кнопку создавался экземпляр класса, а по нажатии на вторую, этот экземпляр использовался в каких-либо целях. Возможно ли такое сделать, и если да, то как?
Я знаю, что можно экземпляр класса создать в пространстве имён (как бы глобально) и использовать как угодно при нажатии на любые клавиши и не только, но всё-таки хочется узнать, можно ли это сделать, как я описал.
Заранее спасибо! :-)

Дата отправки: 21.10.2009, 19:21
Вопрос задал: Hromovnik046
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Челноков Виктор Альбертович (Студент):

Здравствуйте, Hromovnik046.
Есть 2 класса
1 класс
namespace WindowsFormsApplication1
{
partial class match
{
public int I;
public match() 1 класс должен объявляться public , можно объявить статик но тогда при ипользовании этого класса его не надо создавать через New и все члены класса должны быть статик
{

}

public void summ(int i)
{
I = i + 2;
}

}
} в нем выполняются какие то действи

2 класс
форма с двумя кнопками

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
match m; переменная ссылающаяся на 1 класс объявляется на уровне класса
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
m = new match(); при нажати и 1 кнопки создаем экземплр класса

}

private void button2_Click(object sender, EventArgs e)
{
int h; при нажатии 2 кнопки выполняем действи с использованием 1 класса
m.summ(2);
h = m.I;
}
}
}

Консультировал: Челноков Виктор Альбертович (Студент)
Дата отправки: 21.10.2009, 19:42
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное