Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Часть 2. Я начинающий, подскажите как...(Все вопросы начинающих!!!)

51K
05 июля 2009 года
Олориин
1 / / 05.07.2009
День добрый вопрос такой: в ListBox создал 3 столбца
ListBox1->Columns=3;
каким образом записать строку в второй и третий столбцы?

1636 ответов / показаны 161 - 199

Страницы:
9
18 августа 2009 года
Lerkin
3.0K / / 25.03.2003
О, а зачем ты в dllprj.h инклудишь mdll.h? Там же у тебя спецификатор dllexport для ф-ций.
38K
18 августа 2009 года
kd0x13
38 / / 26.04.2009
да, точно, это лишнее, убрал, в dllprj.h включил windows.h, все ошибки исчезли, но осталась с getch(), странно, я же и iostream включил, и std заюзал..
9
18 августа 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: kd0x13
да, точно, это лишнее, убрал, в dllprj.h включил windows.h, все ошибки исчезли, но осталась с getch(), странно, я же и iostream включил, и std заюзал..


Дык, getch() в <stdio.h> декларирован.

38K
18 августа 2009 года
kd0x13
38 / / 26.04.2009
да, это я понял после размещения поста, спасибо, все работает, но только в консольном, в win32 неполучается, кроме того если использовать функцию LoadLibrary((LPWSTR)"mdll.dll"), то dll ненайдена, если LoadLibraryA("mdll.dll") то найдена, но стек вокруг переменной mod - was corrupted, и по F10 я вижу, что функции из dll незагружаются.. в чем причина этих ошибок?
9
18 августа 2009 года
Lerkin
3.0K / / 25.03.2003
1. windows.h - подключать обязательно.
2. вместо main(void), создавать WinMain(HINSTANCE, HINSTANCE, LPTSTR, int).

Вообще, создайте заготовку Win32 Project. И перенесите туда код.
38K
18 августа 2009 года
kd0x13
38 / / 26.04.2009
т.е.
 
Код:
NumberList = (cfunc)GetProcAddress((HMODULE)hLib, "NumberList");
LetterList = (cfunc)GetProcAddress((HMODULE)hLib, "LetterList");

не возвращают адрес функций
51K
18 августа 2009 года
Luzerka
7 / / 12.08.2009
Народ я совсем туплю. Как передать параметр по ссылке в CLR?
void Ex(String^ str);
51K
18 августа 2009 года
Luzerka
7 / / 12.08.2009
Странно, даже пишу void Ex(OleDbDataReader^ ole); такая же хрень.
Видимо надо явно выделить память, но как, если у OleDbDataReader нет конструктора. Как быть в таких случаях?
297
18 августа 2009 года
koodeer
1.2K / / 02.05.2009
Цитата: Luzerka
Народ я совсем туплю. Как передать параметр по ссылке в CLR?
void Ex(String^ str);


Как я понял, нужно переданное значение изменить и вернуть обратно изменённое. Если да, то делаем так:

Код:
using namespace System;

void method(String ^%s) // % <- вот что нужно!
{
    s = "two";
}
int main(array<System::String ^> ^args)
{
    String ^str = "one";
    Console::WriteLine(str);
    method(str);
    Console::WriteLine(str);
    return 0;
}

Подробнее смотрим в MSDN % tracking reference [C++]
38K
18 августа 2009 года
kd0x13
38 / / 26.04.2009
так, в консоли все работает, спасибо Lerkin, но вот в чем вопрос:
при
 
Код:
...
HMODULE myModule = LoadLibraryA("mdll.dll");
...

библиотека загружается отлично, но этого не происходит при LoadLibrary((LPCWSTR)"mdll.dll"); и при HMODULE myModule = LoadLibraryW("mdll.dll"); почему?

ЗЫ немогу найти русскоязычную инфу по программированию win32, прошу помоч в поиске.
9
18 августа 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: kd0x13
так, в консоли все работает, спасибо Lerkin, но вот в чем вопрос:
при
 
Код:
...
HMODULE myModule = LoadLibraryA("mdll.dll");
...

библиотека загружается отлично, но этого не происходит при LoadLibrary((LPCWSTR)"mdll.dll"); и при HMODULE myModule = LoadLibraryW("mdll.dll"); почему?

ЗЫ немогу найти русскоязычную инфу по программированию win32, прошу помоч в поиске.


Ну, браток. Гугль рулит во всех отношениях. MSDN по-русски.
Туда вопросы, там ответы... /(с) День Радио

52K
21 августа 2009 года
Morgant
5 / / 15.08.2009
напишите, пожалуйста код в котором переменная int конвентируется в double.
9
21 августа 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: Morgant
напишите, пожалуйста код в котором переменная int конвентируется в double.


 
Код:
int a = 10;
double d = (double)a;

Сойдет?
11
21 августа 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Morgant
напишите, пожалуйста код в котором переменная int конвентируется в double.


а ниче не треснет?

52K
21 августа 2009 года
Morgant
5 / / 15.08.2009
Код:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char buf[32];
    int a = 10;
    double b = (double)a;
   
    cout << a << endl;
    cout << b << endl;
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

он мне два раза выводит 10
а я бы хотел чтобы 10 и 10,0
11
21 августа 2009 года
oxotnik333
2.9K / / 03.08.2007
 
Код:
int i = 10;
    double d = (double)i;
    cout.precision(20);
    cout<<i<<endl;    
    cout<<fixed<<d<<endl;
535
21 августа 2009 года
Нездешний
537 / / 17.01.2008
[QUOTE="Lerkin"][QUOTE="Morgant"]напишите, пожалуйста код в котором переменная int конвентируется в double.[/QUOTE]
 
Код:
int a = 10;
double d = (double)a;

Сойдет?[/QUOTE]Ууу, все ж не так просто! ;) :D
Код:
template <int v> struct Int2Type
{
    enum {value = v};
};

template <class H, class T> struct Typelist
{
    H head;
    T tail;
};

struct NullType;

#define TYPELIST1(T1) Typelist<T1, NullType>
#define TYPELIST2(T1, T2) Typelist<T1, TYPELIST1(T2) >
#define TYPELIST3(T1, T2, T3) Typelist<T1, TYPELIST2(T2, T3) >
#define TYPELIST4(T1, T2, T3, T4) Typelist<T1, TYPELIST3(T2, T3, T4) >

namespace TL
{
    //длина списка типов
    template <class TList> struct Length;
    template <> struct Length<NullType>
    {
        enum {value = 0};
    };
    template <class T, class U> struct Length<Typelist<T, U> >
    {
        enum {value = 1 + Length<U>::value};
    };

    //поиск типа в списке типов
    template <class TList, class TSearch> struct IndexOf;
    template <class TSearch> struct IndexOf<NullType, TSearch>
    {
        enum {value = -1};
    };
    template <class TSearch, class Tail> struct IndexOf< Typelist<TSearch, Tail>, TSearch >
    {
        enum {value = 0};
    };
    template <class Head, class Tail, class TSearch> struct IndexOf< Typelist<Head, Tail>, TSearch >
    {
    private:
        enum {temp = 1 + IndexOf<Tail, TSearch>::value};
    public:
        enum {value = temp == -1 ? -1 : 1 + temp};
    };
};

template <class T> struct TypeTraits
{
private:

    //распознавание указателей
    template <class U> struct PointerTraits
    {
        enum {result = false};
        typedef NullType PointerType;
    };
    template <class U> struct PointerTraits<U*>
    {
        enum {result = true};
        typedef U PointerType;
    };

    //распознавание основных типов
    typedef TYPELIST4(signed char, short, int, long) SignedInts;
    typedef TYPELIST4(unsigned char, unsigned short, unsigned, unsigned long) UnsignedInts;
    typedef TYPELIST3(float, double, long double) Floats;
    typedef TYPELIST3(char, wchar_t, bool) OtherInts;

    enum {isSignedInt = TL::IndexOf<SignedInts, T>::value >= 0};
    enum {isUnsignedInt = TL::IndexOf<UnsignedInts, T>::value >= 0};
    enum {isFloat = TL::IndexOf<Floats, T>::value >= 0};
    enum {isOtherInt = TL::IndexOf<OtherInts, T>::value >= 0};

public:
    enum {isPointer = PointerTraits<T>::result};
    enum {isStandart = isSignedInt || isUnsignedInt || isFloat || isOtherInt};

};

enum AlgoCasting{ STATIC, DYNAMIC, REINTERPRET };

template <class To, class From>
To universal_cast(From from, Int2Type<STATIC>)
{
    return static_cast<To>(from);
}

template <class To, class From>
To universal_cast(From from, Int2Type<DYNAMIC>)
{
    return dynamic_cast<To>(from);
}

template <class To, class From>
To universal_cast(From from, Int2Type<REINTERPRET>)
{
    return reinterpret_cast<To>(from);
}

template <class To, class From>
To universal_cast(From from)
{
    enum {Algo = (TypeTraits<To>::isPointer && TypeTraits<From>::isPointer) ?
            DYNAMIC :
            (   (TypeTraits<To>::isStandart && TypeTraits<From>::isStandart) ?
                STATIC :
                REINTERPRET
            )
    };

    return universal_cast<To>(from, Int2Type<Algo>() );
}

//использование
    int a = 3;
    double d = universal_cast<double>(a);
    cout << d;


ЗЫ Не читайте, дети, Александреску на ночь!!!
18K
21 августа 2009 года
Avenger
25 / / 23.02.2007
вот код например:
Код:
class Stock
{
private:
    char * company;
    ...
public:
    Stock();
    Stock(const Stock &);
    Stock & operator=(const Stock &);
    ~Stock();
           ...
};
#endif

Код:
Stock::Stock(const Stock & st)
{
    len=st.len;
    //delete [] company; суть вопроса!!!!!!!
    company=new char[len+1];
    ...
}
Stock & Stock::operator =(const Stock & st)
{
    if(this==&st) return *this;
    delete [] company;
    len=st.len;
    company=new char[len+1];
    ...
    return * this;
}

подскажыте пожалуйсто почему не могу очисчять память с помочью delete [] в конструкторе копирования???
12K
21 августа 2009 года
Ghox
297 / / 26.07.2009
Цитата: Avenger
подскажыте пожалуйсто почему не могу очисчять память с помочью delete [] в конструкторе копирования???


Приведите тело обычного конструктора данного класса (который не конструктор копирования), тот, который объявлен у вас в классе:

 
Код:
public:
    Stock();
18K
21 августа 2009 года
Avenger
25 / / 23.02.2007
Код:
Stock::Stock()
{
    company=new char[8];
    strcpy(company,"no name");
    shares=0;
    len=0;
    share_val=0.0;
    total_val=0.0;
}
Stock::Stock(const char *str, int n, double pr)
{
    len=strlen(str);
    company=new char[len+1];
    strcpy(company, str);
    shares=n;
    share_val=pr;
    set_tot();
}
18K
21 августа 2009 года
Avenger
25 / / 23.02.2007
уже подсказали всем спасибо!! ( я опять кажысь намутил:D мой вопрос переместили, а я уже грешным делом подумал что удалили нафик:rolleyes:)
вобщем кому интересно то суть в том что ето конструктор и я питаюсь какби удалить указател который пока ни на что не указывает, вобщем выполняэтся только иницыализацыя а уже что то удаляю поетому ы ошыбка
12K
21 августа 2009 года
Ghox
297 / / 26.07.2009
Цитата: Avenger
уже подсказали всем спасибо!! ( я опять кажысь намутил:D мой вопрос переместили, а я уже грешным делом подумал что удалили нафик:rolleyes:)
вобщем кому интересно то суть в том что ето конструктор и я питаюсь какби удалить указател который пока ни на что не указывает, вобщем выполняэтся только иницыализацыя а уже что то удаляю поетому ы ошыбка


Хорошо что разобрались. :)
Я же должен сказать что тоже ошибся - попросил у вас определения других конструкторов, хотя они здесь вовсе ни при чем. Понял это только после того как свой предыдущий пост написал. Хотел об этом написать, и о том в чем проблема была (примерно то что вы написали)- но вы опередили.

51K
25 августа 2009 года
TheThorn
2 / / 17.06.2009
Всем привет!)
У меня возникла проблема - при запуске борланда Windows 7 пишет, что не поддерживается полноэкранный режим для Borland C++ 3.1. Помимо того, что не удобно, виснет графический режим. Подскажите, что можно сделать?
1.9K
25 августа 2009 года
GreenRiver
451 / / 20.07.2008
Цитата: TheThorn
Всем привет!)
У меня возникла проблема - при запуске борланда Windows 7 пишет, что не поддерживается полноэкранный режим для Borland C++ 3.1. Помимо того, что не удобно, виснет графический режим. Подскажите, что можно сделать?


Не мучить старушку и поставить, например, RAD 2010...

UPD: ну или если нужна именно эта версия, то попробуйте запустить ее в XP Mode (только прежде чем радостно бежать скачивать все необходимое для XP Mode, надо проверить поддерживает ли процессор виртуализацию ... у меня на ноуте, к слову, не поддерживает, хотя вроде вполне нормальный проц стоит)

87
25 августа 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: TheThorn
У меня возникла проблема - при запуске борланда Windows 7 пишет, что не поддерживается полноэкранный режим для Borland C++ 3.1. Помимо того, что не удобно, виснет графический режим. Подскажите, что можно сделать?



В Убунте через Вайн запускай. Шутка.
Можешь еще какой-нибудь DOSBox попробовать.

Но лучше всего работать с какой-нибудь современной IDE.

51K
25 августа 2009 года
TheThorn
2 / / 17.06.2009
Цитата: GreenRiver
Не мучить старушку и поставить, например, RAD 2010...

UPD: ну или если нужна именно эта версия, то попробуйте запустить ее в XP Mode



Чесно говоря, какая версия - разницы нет) Просто так привычнее. Спасибо за советы, поставлю Builder 2010.

50K
27 августа 2009 года
molotov
5 / / 09.07.2009
Недавно начал изучать DirectX и появилось 2 вопроса:
1) Если используется освещение, то оно исчезает при изменении размеров окна и больше не восстанавливается, предотвратить это можно отменой события DeviceResizing, что отрицательно сказывается на качестве картинки, сам код:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace DXtriangle3DLight
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);
        }

        private Device device = null;
        float angle = 0;

        public void InitializeGraphics()
        {
            PresentParameters presentParams = new PresentParameters();
            presentParams.Windowed = true;  //приложение оконное
            presentParams.SwapEffect = SwapEffect.Discard;  //видеокарта сама определяет режим работы с буфером
            device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
            device.DeviceResizing+=new CancelEventHandler(this.CanselResize);
        }

        private void CanselResize(object sender, CancelEventArgs e)
        {
            //e.Cancel = true;            
        }

        private void SetupCamera()
        {
            device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1f, 100f);
            device.Transform.View = Matrix.LookAtLH(new Vector3(0, 0, 5), new Vector3(0, 0, 0), new Vector3(0, 1, 0));
            //device.RenderState.Lighting = false;
            device.RenderState.CullMode = Cull.None;
            device.RenderState.NormalizeNormals = true;            
            device.Transform.World = Matrix.RotationAxis(new Vector3(angle / ((float)Math.PI * 2), angle / ((float)Math.PI * 4), angle / ((float)Math.PI * 6)), angle / (float)Math.PI);
            angle += 0.1f;
        }

        private void SetupLights()
        {
            device.Lights[0].Type = LightType.Point;
            device.Lights[0].Position = new Vector3(0, 0, 0);
            device.Lights[0].Diffuse = Color.White;
            device.Lights[0].Attenuation0 = 0.2f;
            device.Lights[0].Range = 10000f;
            device.Lights[0].Enabled = true;
        }        

        private CustomVertex.PositionNormalColored[] TriangleN()
        {
            CustomVertex.PositionNormalColored[] verts = new CustomVertex.PositionNormalColored[3];
            verts[0].Position = new Vector3(0f, 1f, 1f);
            verts[0].Normal = new Vector3(0f, 0f, -1f);
            verts[0].Color = Color.Orange.ToArgb();
            verts[1].Position = new Vector3(-1f, -1f, 1f);
            verts[1].Normal = new Vector3(0f, 0f, -1f);
            verts[1].Color = Color.Purple.ToArgb();
            verts[2].Position = new Vector3(1f, -1f, 1f);
            verts[2].Normal = new Vector3(0f, 0f, -1f);
            verts[2].Color = Color.Green.ToArgb();
            return verts;
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            device.Clear(ClearFlags.Target, Color.CadetBlue, 1f, 0);
            SetupCamera();
            SetupLights();
            device.BeginScene();
            device.VertexFormat = CustomVertex.PositionNormalColored.Format;
            device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, TriangleN());          
            device.EndScene();
            device.Present();
            this.Invalidate();
        }
    }
}


2) Нормально ли, что при установке высоты окна больше ширины все рисуемые фигуры пропадают (это относится к любому рисованию с использованием мировых координат, не только с освещением).
50K
27 августа 2009 года
molotov
5 / / 09.07.2009
На второй вопрос ответ уже нашёл:
device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, (float)this.Width/this.Height, 1f, 100f);
иначе при делении получался 0. Но освещение по прежнему исчезает.
43K
28 августа 2009 года
breeve
54 / / 05.06.2009
Может ли кто-нибудь мне подсказать?
Такая ситуация мне надо сделать условие конца ввода.
т.е я считываю число. если я нажму enter тобишь ничего не введу то он должен присвоить значение по умолчанию. я знаю что это достаточно просто. но что-то у меня никак не выходит.
9
28 августа 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: breeve

Такая ситуация мне надо сделать условие конца ввода.
т.е я считываю число. если я нажму enter тобишь ничего не введу то он должен присвоить значение по умолчанию.


Как считываешь-то, загадочный ты наш?

43K
28 августа 2009 года
breeve
54 / / 05.06.2009
Просто:
 
Код:
int value;
cin >> value;

еще я пробовал так:

 
Код:
cin >> value;
if (value=='\n')  //или '\0'
{
 cout << "Вы ничего не ввели.";
 value = 1;
}
87
28 августа 2009 года
Kogrom
2.7K / / 02.02.2008
breeve, немного громоздко, но может пойдет:

Код:
int value = 0;
    string str;
    getline(cin, str);
    istringstream iss(str);

    if(!(iss >> value))
    {
        iss.clear();
        value = 1;
    }
    cout << value;
43K
28 августа 2009 года
breeve
54 / / 05.06.2009
Цитата: Kogrom
breeve, немного громоздко, но может пойдет:

Код:
int value = 0;
    string str;
    getline(cin, str);
    istringstream iss(str);

    if(!(iss >> value))
    {
        iss.clear();
        value = 1;
    }
    cout << value;



На самом деле я думал можно это сделать как-то проще(не на ваш счет).
Но и на том спасибо огроменное! :D

43K
28 августа 2009 года
breeve
54 / / 05.06.2009
еще вопрос. я сделал конструктор:
Код:
Rational::Rational()
{
    int numenator = 0;
    string str;
    cout << toRus("Введите числитель: ");
    getline(cin, str);
    istringstream iss_1(str);

    if(!(iss_1 >> numenator))
    {
        iss_1.clear();
        cout << toRus("Вы не ввели значение числителя. \nЕму будет присвоено значение по умолчанию.");
        numenator = 1;
    }
//------------------------------------------------------------------------------------------//  
    int denominator = 0;
    cout << toRus("Введите знаменатель: ");
    getline(cin, str);
    istringstream iss_2(str);
   
    if(!(iss_2 >> denominator))
    {
        iss_2.clear();
        cout << toRus("Вы не ввели значение знаменателя. \nЕму будет присвоено значение по умолчанию.");
        denominator = 1;
    }
//------------------------------------------------------------------------------------------//    
    reduction(numenator, denominator);
}


он мне выдает ошибку:
Цитата:

2 строка в этом коде, D:\Dev-Cpp\&#239;&#240;&#238;&#227;&#232;\Rational\rational_main.cpp new types may not be defined in a return type
2 строка в этом коде, D:\Dev-Cpp\&#239;&#240;&#238;&#227;&#232;\Rational\rational_main.cpp return type specification for constructor invalid



мне кажется но скорее всего это не так - в конструкторе нельзя создать левую переменную. что такое новые типы и возвращаемые типы :confused: ?

9
28 августа 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: breeve
На самом деле я думал можно это сделать как-то проще...


Чуть проще вариант:

 
Код:
string str;
int value = 1;

getline( cin, str );
if (!str.empty())
    value = atoi( str.c_str() );
1
31 августа 2009 года
kot_
7.3K / / 20.01.2000
Цитата: breeve
что никто не может мне помочь?! :(


От чего же. Я могу. 10 баллов нарушения - 5 за то что правила форума не читаешь, 5 - за нарушение собственно правил.

8.3K
31 августа 2009 года
roman@
63 / / 10.11.2007
Привет. Я начал изучать C# , использую книгу Чарльза Петцольда “Программирование для Microsoft Windows на C#” , подскажите, где можно найти задания, чтоб овладеть качественными навыками что стать программистом. (ну чтоб книги не били типа на простые цикли и т.п. что та посерьезней ) Спасибо
43K
31 августа 2009 года
breeve
54 / / 05.06.2009
Я нашел свою ошибку. Я после объявления класса забыл поставить точку с запятой.
50K
02 сентября 2009 года
moveax
10 / / 02.09.2009
Доброго времени суток! Запутался в определениях которыми кишит ООП в C#, чем отличается поле от свойства?
1.9K
02 сентября 2009 года
GreenRiver
451 / / 20.07.2008
Цитата: moveax
Доброго времени суток! Запутался в определениях которыми кишит ООП в C#, чем отличается поле от свойства?


Всё просто:

1. Поле - это какие-либо данные, которые принадлежат классу:

 
Код:
class TestField
{
   public int Count;
}

2. Свойство - это методы (функции), которые "маскируются" под данные:
 
Код:
class TestProperty
{
   private int count;
   public int Count
   {
        get { return count + 1; }
        set { count = value - 1; }
   }
}
}


Их использование в коде выглядит одинаково, но в случае свойств вызываются функции get и set (что позволяет например проводить дополнительные проверки, либо изменять данные), а в случае полей вы работаете с самой переменной.
 
Код:
var p = new TestProperty();
p.Count = 3;     // здесь будет вызван метод set {}
int x = p.Count; // здесь будет вызван метод get {}

var f = new TestField();
f.Count = 3; // а здесь работа происходит непосредственно с переменной
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог