kms писал(а) 06. Февраля 2007 :: 23:13:А, не догнал сразу, что ты свой проект собирал.
Сейчас, просто по приколу, собрал 1С++. Ошибок было только две:
1)
D:\Program r.h(129): error: expression must be an lvalue or a function designator
memcpy(Row.m_pDims + Offset, &(Source[i].AsDate().m_dt), CurSize);
заменил на
CDBField Field = Source[i];
COleDateTime DateTime = Field.AsDate ();
//memcpy(Row.m_pDims + Offset, &(Source[i].AsDate().m_dt), CurSize);
memcpy(Row.m_pDims + Offset, &DateTime.m_dt, CurSize);
2)
D:\Program 8): error: ambiguous "?" operation: second operand of type "unsigned long" can be converted to third operand type "const CNumeric", and vice versa
BOOL SetPropTextColor(CValue const& Value) {SetTextColor(SET_V7_COLOR(Value)); return TRUE;};
Подправил макрос SET_V7_COLOR:
#define SET_V7_COLOR(vValue) (vValue == -1 ? CLR_DEFAULT :
(int)vValue.GetNumeric())
Выдал кучу крайне антиресных ворнингов
Например, оказывается, в 1С++ в printf'оподобные функции часто передается CString без приведения к const char *. Странно, я и не знал, что такое может работать
Компилятор, естественно, ругается, говорит не POD-тип. Например, здесь:
s\");",strCompute);
Передан strCompute. Для sprintf он вообще прямо говорит:
"argument is incompatible with corresponding format string conversion"
Много всяких "omission of explicit type is nonstandard ("int" assumed)". Ну, это естественно
Также полно ворнингов про неиспользуемые переменные, что уже стало обычным
Выдался любопытный ворнинг в DynaValue.cpp:
D:\Program Files\DevStudio\MyProjects\1cpp.repo\1cpp\Source\DynaValue.cpp(865): warning #187: use of "=" where "==" may have been intended
if(p[3]='2')
Ругается на фрагмент:
if(*p=='#')
{
if(p[1]=='d' && p[2]=='v')
{
if(p[3]='2') // <= здесь
{
ver=2;
}
else
{
ver=-1;
}
p+=4;
}
else
{
ver=-1;
}
}
А может он прав?!
Перед компиляцией пришлось убрать опцию препроцессора: "DelayLoad:Basic.dll". Кстати, зачем она? Вроде же это опция линкера?
Собрать-то собрал, но тестовая конфа для 1С++ компоненту не запускает... Тут уже глубже надо разбираться.