• Как исправить C# обертку для С++?

    @devolegf Автор вопроса
    почему же для VT_BSTR только 4 байта ?? это только ведь часть строки (ее длина)
    https://hsto.org/storage2/2a4/a7b/1a9/2a4a7b1a9e9a...
  • Как исправить C# обертку для С++?

    @devolegf Автор вопроса
    Петр: параметры: BYTE m_VarType; DWORD value;
    fRet = PDLCSGetPropertyEx(ProjPathName,PicName,ObjName,PropName,m_VarType,&value,0, NULL, &Error);
  • Как исправить C# обертку для С++?

    @devolegf Автор вопроса
    Петр: доброго времени суток..Спасибо за Ваше потраченное время, необходима Ваша консультация.. если в обертке объявить параметр PvProp с ref то без проблем читается значение параметра в виде строки сл. образом String s = Marshal.PtrToStringBSTR(p); но при этом уже не могу считать данные которые VT_I4 или VT_R8 типа. Ошибка System.AccessViolationException Попытка чтения или записи в защищенную память. при этом указатель p содержит адрес 0x00000050... но когда обявить без ref то без проблем читаю числа, но если нужно считать строку VT_BSTR то вижу что по адресу указаному в указателе (р) меняются только первые 4 байта (длина строки ) и естественно строка уже не считывается. В чем может быть проблема?
  • Как исправить C# обертку для С++?

    @devolegf Автор вопроса
    Петр: подскажите пожалуйста. сейчас наткнулся на ошибку нарушение прав доступа при записи по адресу 0x00000000. насколько я понимаю это через неправильный указатель(параметр PvProp)..Как правильно установить указатель на адрес чтоб туда можно было записать число?
  • Как исправить C# обертку для С++?

    @devolegf Автор вопроса
    нет так тоже не работает.. подскажите с параметрами vt и pvProp.. все ли там верно? вот их описание из документации:
    vt
    Data type of the value passed with pvProp. Valid types are defined in the "VARENUM" enumeration within the "wtypes.h" Include file belonging to the compiler.
    No VT_VARIANT, VT_DISPATCH or other references should be used.

    PvProp
    Pointer to a tag to which the property value is saved. The data type of the value is determined by vt. For pvProp you can specify any value defined for the Variant data type; refer to the values contained in the "wtypes.h" Include file belonging to your compiler.
    For types which have a buffer (e.g. BSTR), the buffer is allocated by the function and must be cleared afterwards by the calling application.
  • Как исправить C# обертку для С++?

    @devolegf Автор вопроса
    Спасибо за отклик.. попробовал, ничего не изменилось.. В примерах от разработчика(Siemens - scada Wincc) параметр pError тоже представлен без ref. Когда пробую играться с параметрами vt и pvProp функция корректно завершает работу но всегда с результатом false и в errPdl получаю неизвестный код ошибки по документации. Когда запускаю проект на с++ то функция возвращает необходимые данные.