ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

28.11.2009, 10:58
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
где может быть ошибка
Код:
#define WM_NOTIFYICONMSG (WM_USER + 2);
LRESULT WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_NOTIFYICONMSG: // первая ошибка и вторая тут
switch(lParam)
{ // тут третья
case WM_LBUTTONDBLCLK:
MessageBoxA(NULL, "Двойной щелчок по иконке", "Сообщение от иконки", MB_OK);
break;
}
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return 0;
}
вижел студио ругается на
Код:
Ошибка 2 error C2143: синтаксическая ошибка: отсутствие ":" перед
Ошибка 3 error C2143: синтаксическая ошибка: отсутствие ";" перед
Ошибка 4 error C2143: синтаксическая ошибка: отсутствие ";" перед
помоему в синтаксисе все норма или я ошибаюсь?
|
|
|

28.11.2009, 11:30
|
|
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме: 1595333
Репутация:
291
|
|
после define-а ";" ненадо
|
|
|

28.11.2009, 11:46
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
Код:
#define WM_NOTIFYICONMSG (WM_USER + 2);
так есть точка запятой если сразу после него ставить то думаю это не правильно да и компилятор ругается на синтаксис тогда в дефайне
|
|
|

28.11.2009, 13:56
|
|
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме: 3718311
Репутация:
1118
|
|
Код:
#define WM_NOTIFYICONMSG (WM_USER + 2)
В конце определения не должно быть ;
|
|
|

28.11.2009, 14:50
|
|
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме: 385811
Репутация:
12
|
|
Как определить всех зарегистрированных пользователей в системе? Нашел функцию, GetUserName, но она определяет только имя текущего пользователя...
|
|
|

28.11.2009, 15:40
|
|
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме: 3718311
Репутация:
1118
|
|
эту тему на одну страницу назад отлистни
Вернусь к своему вопросу =)
Пытаюсь загрузить картинку из ресурсов программы
Код:
Image ^ image = Bitmap::FromResource(hInstance,"IDB_BITMAP1");
При запуске получаю ошибку
Необработанное исключение типа "System.ArgumentException" произошло в System.Drawing.dll Дополнительные сведения: Недопустимый параметр.
Компилятор не ругается. (среда MSVC2009 SP1)
В чем мой глюк?
P.S. Можно было бы так юзать
Код:
this->BackgroundImage = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"$this.BackgroundImage")));
Но к сожалению студия постоянно обновляет файл resX =(
--------------------------------------------------------------
Допетрил =))
Вообщем создал файл all.resX и запхал туда все необходимые мне ресурсы, далее классом ResourceManager вытащил и подставил куда нужно
Код:
// + GOOD + //
ResourceManager ^resourceManager = gcnew ResourceManager("Project.all", System::Reflection::Assembly::GetExecutingAssembly());
Project.all - Project - Имя проэкта ака Пространство имен, all - имя файла ресурсов.
Код:
pictureBox1->Image = (Image ^)resourceManager->GetObject("image1");
// - GOOD - //
Если нужно подгрузить текст из ресурсов то так
Код:
label1->Text = resourceManager->GetString("String1");
С файлом rc так и недопетрил, его вообще возможно использовать в VC.NET ?
Последний раз редактировалось POS_troi; 28.11.2009 в 23:16..
|
|
|

29.11.2009, 05:46
|
|
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
Провел на форуме: 1284900
Репутация:
399
|
|
Есть строка
Код:
unsigned char buf[16];
содержащая 32 шестнадцатеричных символа.
Нужно получить строку содержащую ASCII коды этих символов:
если
buf="aaa"
нужно получить
buf2="616161"
основная проблема в том что функция в которой это всё должно происходить на данный момент запускается ~860 000 раз в секунду и "тупое" преобразование может её очень сильно замедлить...
UPD: помогли в другом месте.
Используется вставка ассемблера:
Код:
inline void HexToAscii(unsigned char *szTo, unsigned char *pFrom, int n)
{
DWORD szHex[4];
szHex[0] = '3210';
szHex[1] = '7654';
szHex[2] = 'ba98';
szHex[3] = 'fedc';
__asm
{
pushad
mov esi,pFrom
mov edi,szTo
lea edx,szHex
L1: movzx eax,byte ptr[esi]
inc esi
mov ecx,eax
and eax,0xF
shr ecx,4
movzx ecx,byte ptr[edx+ecx]
movzx eax,byte ptr[edx+eax]
shl eax,8
or eax,ecx
mov [edi],ax
add edi,2
dec n
jNZ short L1
popad
}
}
Последний раз редактировалось Gray_Wolf; 29.11.2009 в 09:13..
|
|
|

29.11.2009, 15:00
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
1188
|
|
у меня такой вопрос
проблема состоит в том что нужно переменную типа FLOAT вывести на экран через dc.TextOut
переменная входит в DLL, обрабатывается и выходит из DLL такого же типа.
код DLL
PHP код:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <windows.h>
#include <stdio.h>
int calc (float cm)
{
float cm1 = cm;
CString t;
t.Format(_T("%f"), cm1);
AfxMessageBox(t);
return cm1;
}
далее часть кода, которая отвечает за передачу переменной в либу, ее возврат оттуда и собственно вывод на экран.
PHP код:
float res;
HINSTANCE hDll;
hDll=::LoadLibrary("MyDll");
if (hDll == NULL)
{
::MessageBox(NULL,"Файл MyDll.dll не найден!","File MyDll.dll not found!",MB_OK| MB_ICONSTOP);
}
else
{
typedef float (*FUN)(float);
FUN func;
func=(FUN)::GetProcAddress(hDll, "calc");
res=(*func)(cm);
int resint = (int)res;
{
BE_RUN=1;
COpenWnd *OpenWnd=new COpenWnd(this);
OpenWnd -> ShowWindow(SW_SHOWNORMAL);
OpenWnd -> UpdateWindow();
CClientDC dc(OpenWnd);
sprintf(s,"%d",res);
dc.SetTextColor(RGB(0,0,255));
dc.TextOut( 35 , 45, "Результат = ");
dc.TextOut(195,45,s,strlen(s));
}
::FreeLibrary(hDll);
}
для типа INT все пашет, а FLOAT не могу вывести в dc.TextOut
кто что думает?
помогите разобраться)
Заранее большое спасибо.
месседж бокс в длл кинул для проверки поступает ли значение туда. все норм.
а вот после в текс выводит бред какой то
где то с типами напутал...
-------------------------------
Проблема решена
https://forum.antichat.ru/showpost.p...postcount=4393
Последний раз редактировалось NetSter; 29.11.2009 в 15:56..
|
|
|

29.11.2009, 15:17
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
для типа INT все пашет, а FLOAT не могу вывести в dc.TextOut
что значит не можешь вывести?
Код:
sprintf(s,"%f",res);
|
|
|

29.11.2009, 15:25
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
1188
|
|
Сообщение от razb
что значит не можешь вывести?
Код:
sprintf(s,"%f",res);
тогда вот что получается
я уже пробовал
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|