Для назначения начального значения одному из участников вашего диалога вам не нужно отправлять ему сообщение.
Вы можете просто присвоить значение напрямую:
Таким образом, вместо
GetMain()->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
у вас должно быть что-то вроде:
charteringDlg->thevalueorwhatever = 12;
И BTW:
GetMain()->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
в любом случае неправильно, вы должны отправить сообщение в диалоговое окно, а не в главное окно:
charteringDlg->SendMessage(UWM_MYMESSAGE_CHARTERING, 0,(LPARAM)&temp);
std::sort()
должен работать:
CArray<int> arrayOfInts;
arrayOfInts.Add(7);
arrayOfInts.Add(114);
arrayOfInts.Add(3);
std::sort(arrayOfInts.GetData(), arrayOfInts.GetData()+arrayOfInts.GetSize());
Это использует указатель на первый элемент в массиве как итератор запуска, и указатель на одно прошлое последний элемент как последний итератор (никогда не должен разыменовываться так или иначе, таким образом, все хорошо). Вы могли также передать в пользовательском предикате, если бы массив содержал более интересные данные:
struct Foo
{
int val;
double priority;
};
bool FooPred(const Foo& first, const Foo& second)
{
if ( first.val < second.val )
return true;
if ( first.val > second.val )
return false;
return first.priority < second.priority;
}
//...
CArray<Foo> bar;
std::sort(bar.GetData(), bar.GetData()+bar.GetSize(), FooPred);
О - и не используют CArray
.