[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. draliokero

    draliokero Member

    Joined:
    14 Mar 2009
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    Как определить всех зарегистрированных пользователей в системе? Нашел функцию, GetUserName, но она определяет только имя текущего пользователя...
     
  2. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    эту тему на одну страницу назад отлистни

    Вернусь к своему вопросу =)

    Пытаюсь загрузить картинку из ресурсов программы

    Code:
    Image ^ image = Bitmap::FromResource(hInstance,"IDB_BITMAP1");
    
    При запуске получаю ошибку

    Компилятор не ругается. (среда MSVC2009 SP1)

    В чем мой глюк?

    P.S. Можно было бы так юзать

    Code:
    this->BackgroundImage = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"$this.BackgroundImage")));
    Но к сожалению студия постоянно обновляет файл resX =(

    --------------------------------------------------------------

    Допетрил =))

    Вообщем создал файл all.resX и запхал туда все необходимые мне ресурсы, далее классом ResourceManager вытащил и подставил куда нужно

    Code:
    // + GOOD + //
    ResourceManager ^resourceManager = gcnew ResourceManager("Project.all", System::Reflection::Assembly::GetExecutingAssembly());
    
    Project.all - Project - Имя проэкта ака Пространство имен, all - имя файла ресурсов.
    Code:
    pictureBox1->Image = (Image ^)resourceManager->GetObject("image1");
    // - GOOD - //	
    
    Если нужно подгрузить текст из ресурсов то так
    Code:
    label1->Text = resourceManager->GetString("String1");
    
    С файлом rc так и недопетрил, его вообще возможно использовать в VC.NET ?
     
    #4342 POS_troi, 28 Nov 2009
    Last edited: 28 Nov 2009
  3. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Есть строка
    Code:
    unsigned char buf[16];
    содержащая 32 шестнадцатеричных символа.

    Нужно получить строку содержащую ASCII коды этих символов:
    если
    buf="aaa"
    нужно получить
    buf2="616161"

    основная проблема в том что функция в которой это всё должно происходить на данный момент запускается ~860 000 раз в секунду и "тупое" преобразование может её очень сильно замедлить...

    UPD:
    помогли в другом месте.
    Используется вставка ассемблера:
    Code:
    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
       }
    }
    
     
    #4343 Gray_Wolf, 29 Nov 2009
    Last edited: 29 Nov 2009
  4. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    у меня такой вопрос
    проблема состоит в том что нужно переменную типа 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_OKMB_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.TextOut35 45"Результат = "); 
            
    dc.TextOut(195,45,s,strlen(s));
        }
        ::
    FreeLibrary(hDll);
        }

    для типа INT все пашет, а FLOAT не могу вывести в dc.TextOut

    кто что думает?
    помогите разобраться)
    Заранее большое спасибо.

    месседж бокс в длл кинул для проверки поступает ли значение туда. все норм.
    а вот после в текс выводит бред какой то
    где то с типами напутал...

    -------------------------------
    Проблема решена
    https://forum.antichat.ru/showpost.php?p=1722735&postcount=4393
     
    _________________________
    #4344 NetSter, 29 Nov 2009
    Last edited: 29 Nov 2009
  5. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    что значит не можешь вывести?
    Code:
    sprintf(s,[b]"%f"[/b],res);
     
    1 person likes this.
  6. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    тогда вот что получается

    [​IMG]

    я уже пробовал
     
    _________________________
  7. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Как у тебя буфер s обьявлен?
     
  8. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    char s[100];

    -----------------------------------
    проблема решена.
    сам в шоке как активизировалась робота мозга после того как запостил здесь вопрос. :rolleyes:

    трабла была вот в чем:

    у нас функция с DLL интовая была

    PHP:
    int calc (float cm)
    {
    bla bla bla;
    а требовали от роботы DLL тип FLOAT

    PHP:
     typedef float (*FUN)(float); 
    тоисть сделал из интовой функции - функцию FLOAT в DLL

    PHP:
    float calc (float cm)
    Всем спасибо кто откликнулся !
     
    _________________________
    #4348 NetSter, 29 Nov 2009
    Last edited: 29 Nov 2009
  9. krewger

    krewger Banned

    Joined:
    24 Oct 2008
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    Code:
    #include<iostream>
    #include<math>
    using namespace std;
    
    float SF(float x1, float x2, float x3, float y1, float y2, float y3);
    float PS(float x1, float x2, float x3, float y1, float y2, float y3);
    
    
    main()
    {
    	float x1,x2,x3,y1,y2,y3,S,P;
    
    	cout<<"Vvedite koordinaty x to4ki A";
    	cin>>x1;
    	cout<<"Vvedite koordinaty y to4ki A";
    	cin>>y1;
        cout<<"Vvedite koordinaty x to4ki B";
    	cin>>x2;
    	cout<<"Vvedite koordinaty y to4ki B";
    	cin>>y2;
    	cout<<"Vvedite koordinaty x to4ki C";
    	cin>>x3;
    	cout<<"Vvedite koordinaty y to4ki C";
    	cin>>y3;
    	S=SF(x1, x2, x3, y1, y2, y3);
    	P=PS(x1, x2, x3, y1, y2, y3);
    
    	cout<<"Perimetr zadannogo treygol'nika raven"<<P<<"\n  "<<"Ploshad' zadannogo treygol'nika ravna"<<S;
    }
    
    int SF (int x1, int x2, int x3, int y1, int y2, int y3)
    {
    	return ((x1 – x3)·(y2 – y3) – (x2 – x3)·(y1 – y3))/2
    }
    int PS(int x1, int x2, int x3, int y1, int y2, int y3)
    {
    	return (sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))))+(sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2))))+(sqrt(((x1-x3)*(x1-x3))+((y1-y3)*(y1-y3))))
    }
    
    Пишет в Visual C++ ошибки:

    Code:
    krew.cpp(30) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
    .\krew.cpp(33) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
    .\krew.cpp(34) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
    
     
  10. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    поменяй int на float в реализации
    Code:
    float SF (float x1, float x2, float x3, float y1, float y2, float y3)
    {
    //....
    }
    
    со второй функцией точно также
     
    #4350 Irdis, 1 Dec 2009
    Last edited: 1 Dec 2009
  11. Опухоль

    Опухоль New Member

    Joined:
    23 May 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    как удалять папки в си ?
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Гугл не?
    RemoveDirectory из winapi например
     
    _________________________
  13. __mad

    __mad Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    100
    Likes Received:
    38
    Reputations:
    7
    Code:
    remove(const char * name)
     
  14. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Вот так вот
    Code:
    void randstr(int leng,char *_out)
    {
    	if(leng<1025 && leng>0)
    	{
    		char *out=new char[1024];
    		char *chr;
    		memset(out,NULL,1024);
    		char alphabet[]="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
    		randomize();
    		for(int i=0;i<leng;i++)
    		{
    			wsprintf(chr,"%c",alphabet[random(strlen(alphabet))]);
    			strcat(out,chr);
    			randomize();
    		}
    		strcpy(_out,out);
    		delete []out;
    	}
    }
    
    неработает.
    Почему randomize(); неуспевает отработать?
     
  15. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    ниуянепонял.жпг
     
  16. emillord

    emillord Elder - Старейшина

    Joined:
    20 Jan 2008
    Messages:
    257
    Likes Received:
    444
    Reputations:
    255
    доброго времени суток.
    Начал изучать С++, посоветуйте как наконец выбраться из консоли?
    Какие библиотеки\модули нужны чтобы например написать простенькое приложение с графикой?

    p/s гуглил нашел - gtkmm. Стоит ли его применять?
     
  17. krewger

    krewger Banned

    Joined:
    24 Oct 2008
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0

    поменял, все тоже самое!!!!
     
  18. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    _nic
    я тоже ниуянепонял.жпг
    emillord
    QT(самое приоритетное), winApi, MFC
    или переходи на с#(winforms)
    krewger
    что то я тебе не верю :D
    код в студию
     
  19. krewger

    krewger Banned

    Joined:
    24 Oct 2008
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    Code:
    #include<iostream>
    #include<math>
    using namespace std;
    
    float SF(float x1, float x2, float x3, float y1, float y2, float y3);
    float PS(float x1, float x2, float x3, float y1, float y2, float y3);
    
    
    main()
    {
    	float x1,x2,x3,y1,y2,y3,S,P;
    
    	cout<<"Vvedite koordinaty x to4ki A";
    	cin>>x1;
    	cout<<"Vvedite koordinaty y to4ki A";
    	cin>>y1;
        cout<<"Vvedite koordinaty x to4ki B";
    	cin>>x2;
    	cout<<"Vvedite koordinaty y to4ki B";
    	cin>>y2;
    	cout<<"Vvedite koordinaty x to4ki C";
    	cin>>x3;
    	cout<<"Vvedite koordinaty y to4ki C";
    	cin>>y3;
    	S=SF(x1, x2, x3, y1, y2, y3);
    	P=PS(x1, x2, x3, y1, y2, y3);
    
    	cout<<"Perimetr zadannogo treygol'nika raven"<<P<<"\n  "<<"Ploshad' zadannogo treygol'nika ravna"<<S;
    }
    
    float SF (float x1, float x2, float x3, float y1, float y2, float y3)
    {
    	return ((x1 – x3)·(y2 – y3) – (x2 – x3)·(y1 – y3))/2
    }
    float PS(float x1, float x2, float x3, float y1, float y2, float y3)
    {
    	return (sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))))+(sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2))))+(sqrt(((x1-x3)*(x1-x3))+((y1-y3)*(y1-y3))))
    }
    

    Code:
    krew.cpp(30) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
    .\krew.cpp(33) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
    .\krew.cpp(34) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
     
  20. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    вотъ... и пишите в с++ на английском
    Code:
    #include<iostream>
    #include<math.h>
    using namespace std;
    
    float SF(float x1, float x2, float x3, float y1, float y2, float y3);
    float PS(float x1, float x2, float x3, float y1, float y2, float y3);
    
    
    int main()
    {
    	float x1,x2,x3,y1,y2,y3,S,P;
    
    	cout<<"Vvedite koordinaty x to4ki A";
    	cin>>x1;
    	cout<<"Vvedite koordinaty y to4ki A";
    	cin>>y1;
        cout<<"Vvedite koordinaty x to4ki B";
    	cin>>x2;
    	cout<<"Vvedite koordinaty y to4ki B";
    	cin>>y2;
    	cout<<"Vvedite koordinaty x to4ki C";
    	cin>>x3;
    	cout<<"Vvedite koordinaty y to4ki C";
    	cin>>y3;
    	S=SF(x1, x2, x3, y1, y2, y3);
    	P=PS(x1, x2, x3, y1, y2, y3);
    
    	cout<<"Perimetr zadannogo treygol'nika raven"<<P<<"\n  "<<"Ploshad' zadannogo treygol'nika ravna"<<S;
    	return 0;
    };
    
    float SF (float x1, float x2, float x3, float y1, float y2, float y3)
    {
    	return ((x1 - x3)*(y2 - y3) - (x2 - x3)*(y1 - y3))/2.0;
    };
    float PS(float x1, float x2, float x3, float y1, float y2, float y3)
    {
    	return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))+sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2))+sqrt(((x1-x3)*(x1-x3))+((y1-y3)*(y1-y3)));
    }
     
Thread Status:
Not open for further replies.