Codeguard detected error in the program a log file will be created

Ошибки и логи CodeGuard C++ Builder Решение и ответ на вопрос 816419
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "support2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
 resfile get;
Graphics::TBitmap* bit1=new Graphics::TBitmap;//нужны по всему коду поэтому глобальные
Graphics::TBitmap* bit2=new Graphics::TBitmap;
Graphics::TBitmap* bit3=new Graphics::TBitmap;
Graphics::TBitmap* bit4=new Graphics::TBitmap;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{       int mas[786432];
       DoubleBuffered=true;
//-----------------------------------------        
        ifstream filez;
        filez.open("res.ij",std::ios::in|std::ios::binary);//файл - структура ниже приведу
        if(!filez){ShowMessage("Не удалось открыть файл res.ij");exit(1);}
        filez.read((char*)&get,sizeof(get));
        filez.close();
//------------------------------------------
       ifstream file1;
       file1.open("D:\ij\888\rb1.ij",std::ios::in|std::ios::binary);//файл-массив цветов от 0 до 16777216,+[0]-ширина
//[1]-высота,786432-максимальный размер 1024*768
       if(!file1){ShowMessage("Не удалось открыть файл rb.ij1");exit(1);}
       file1.read((char*)&mas,sizeof(mas));
       Form1->Width=mas[0];
       Form1->Height=mas[1];
       Image1->Width=mas[0];
       Image1->Height=mas[1];
       bit1->Width=mas[0];
       bit1->Height=mas[1];
       int i=2;
       for(int x=0;x<mas[0];x++)
        {
          for(int y=0;y<mas[1];y++)
            {
             bit1->Canvas->Pixels[x][y]=mas[i];
             i++;
            }
         }
        Image1->Picture->Bitmap=bit1;
        file1.close();
        Image1->Repaint();
//-----------------------------------------      
      ifstream file2;
      file2.open("D:\ij\888\rb2.ij",std::ios::in|std::ios::binary);
      file2.read((char*)&mas,sizeof(mas));
      bit2->Width=mas[0];
      bit2->Height=mas[1];
      int i1=2;
      for(int x=0;x<mas[0];x++)
        {
          for(int y=0;y<mas[1];y++)
           {
           bit2->Canvas->Pixels[x][y]=mas[i1];
           i1++;
           }
        }
      Image2->Picture->Bitmap=bit2;
      Image2->Repaint();
      file2.close();
//-----------------------------------------------       
       ifstream file3;
       file3.open("D:\ij\888\rb3.ij",std::ios::in|std::ios::binary);
       file3.read((char*)&mas,sizeof(mas));
       bit3->Width=mas[0];
       bit3->Height=mas[1];
       int i2=2;
       for(int x=0;x<mas[0];x++)
       {
         for(int y=0;y<mas[1];y++)
         {
          bit3->Canvas->Pixels[x][y]=mas[i2];
          i2++;
         }
       }
       Image3->Picture->Bitmap=bit3;
       Image3->Repaint();
       file3.close();
//----------------------------------
       ifstream file4;
       file4.open("D:\ij\888\rb4.ij",std::ios::in|std::ios::binary);
       file4.read((char*)&mas,sizeof(mas));
       bit4->Width=mas[0];
       bit4->Height=mas[1];
       int i3=2;
     for(int x=0;x<mas[0];x++)
      {
         for(int y=0;y<mas[1];y++)
        {
         bit4->Canvas->Pixels[x][y]=mas[i3];
          i3++;
        }
      }
       Image4->Picture->Bitmap=bit4;
       Image4->Repaint();
        file4.close();
       }
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  SYSTEMTIME Z;
  GetSystemTime(&Z);
//пользовательская функция если закоментировать ошибки остаются,не в ней в общем дело
  ijRotate(Z.wSecond*6,get.xop,get.yop,bit4,Image4);
  ijRotate(Z.wMinute*6,get.xop,get.yop,bit3,Image3);
  ijRotate(Z.wHour*30+Z.wMinute/2,get.xop,get.yop,bit2,Image2);
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
 
delete bit1;
delete bit2;
delete bit3;
delete bit4;
}


Форум программистов Vingrad

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Нужна CG32.dll, CG32.dll Borland C++ Builder 

V

   

Опции темы

DigitSphinx
Дата 11.4.2008, 10:01 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3

Доброе время суток, в универе препод дал свою дипломнею прогу, чтобы написать для нее описание и вообще разобраться в ней.
Написана на билдере, при запуске требует CG32.dll
Я скачал эту библиотеку, теперь выдает окно с ошибкой 

Код

CodeGuard detected error(s) int the program. A log file will be created

За тем 

Код

unknown software exception (0xc0000027) в приложении по адресу 0x7c80de9c

Программа работает (а то бы препод не сдал бы диплом) как заставить ее работать, желательно не устанавливая сам билдер.

———————

Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image

PM MAIL ICQ   Вверх
TaNK
Дата 11.4.2008, 10:08 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1

для чего эта библиотека…может нужна gds32.dll?

———————


Oracle 11.2.0.3.0
FireBird 1.0-2.5

PM MAIL ICQ   Вверх
Lazin
Дата 11.4.2008, 11:19 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154

В опциях линкера 
build with runtime packages — вкл 
use dynamic rtl — выкл

Добавлено через 24 секунды
кстати поиск рулит, много раз уже тема поднималась

Добавлено через 1 минуту и 50 секунд
CG32.dll — это библиотека Code Guard, в релизе ее (отладку через Code Guard) желательно отключить  smile

———————

C++ is the steampunk of programming languages: modern ideas realized with victorian technology.

PM MAIL Skype GTalk   Вверх
DigitSphinx
Дата 11.4.2008, 11:46 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3

Так у меня только exe файл, и все , Не билдера не тем более кода !

Добавлено через 2 минуты и 6 секунд
На появление gds32.dll прога никак не отреагировала ((

———————

Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image

PM MAIL ICQ   Вверх
Lazin
Дата 11.4.2008, 11:50 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154

Код

CodeGuard detected error(s) int the program. A log file will be created

то есть он нашел ошибку в программе, потом, видимо библиотека должна взаимодействовать с отладчиком… так что нужен билдер, либо попроси пересобрать программу без CG — это маразм делать релиз с включенным CG

———————

C++ is the steampunk of programming languages: modern ideas realized with victorian technology.

PM MAIL Skype GTalk   Вверх
DigitSphinx
Дата 11.4.2008, 12:08 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3

Не инт а просто ин ))
препод сказал что прога работает.
Поэтому у меня подозрения что нужен сам билдер.
Но думал обойтись библиотеками.

———————

Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image

PM MAIL ICQ   Вверх
xvr
Дата 11.4.2008, 13:52 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Химки, Московская обл

Репутация: 48
Всего: 223

Цитата(DigitSphinx @ 11.4.2008,  12:08)
Не инт а просто ин ))
препод сказал что прога работает.

Не верь ему  smile

Цитата
When you run a CodeGuard-enabled application, CodeGuard generates a log file that lists the errors it finds. The log file is called project.CGL (where project is the name of your executable) and is located in the same directory as your executable.

Найди файл *.CGL и отнеси препу — пусть исправляет свою программу.

Кстати, у Code Guard есть конфигуратор, его проверки можно отключить (даже для уже собранной программы)

Это сообщение отредактировал(а) xvr — 11.4.2008, 13:57

PM MAIL   Вверх
DigitSphinx
Дата 12.4.2008, 14:18 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3

Цитата(xvr @  11.4.2008,  13:52 Найти цитируемый пост)
Не верь ему   

 

smile  smile 
Нашел файл cgl, ничего дельного он не сказал, пробормотал что-то вроде
Error 00001. 0x400000 (Thread 0x0DB4):
Exception 0xC0000005: Access violation at 0x0.
Так вот, дело в том что у меня НИЧЕГО не нет кроме exe’шника проги и gds32.dll которую я скачал из инета.
Никакого Code Guard или C++ Builder
В папке с прогой лежат файлы output’а т.е. результаты работы проги => она должна работать )))
Но не работает  smile 

———————

Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image

PM MAIL ICQ   Вверх
xvr
Дата 12.4.2008, 16:31 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Химки, Московская обл

Репутация: 48
Всего: 223

Цитата(DigitSphinx @ 12.4.2008,  14:18)
Цитата(xvr @  11.4.2008,  13:52 Найти цитируемый пост)
Не верь ему   

 smile  smile 
Нашел файл cgl, ничего дельного он не сказал, пробормотал что-то вроде
Error 00001. 0x400000 (Thread 0x0DB4):
Exception 0xC0000005: Access violation at 0x0.

Перевожу на человеческий язык — в программе произошла попытка читать по нулевому указателю

Цитата
Так вот, дело в том что у меня НИЧЕГО не нет кроме exe’шника проги и gds32.dll которую я скачал из инета.
Никакого Code Guard или C++ Builder

cg32.dll — это и есть Code Guard 

Цитата
В папке с прогой лежат файлы output’а т.е. результаты работы проги => она должна работать )))
Но не работает  smile

Между ‘должна’ и ‘работает’ есть разница  smile Если она отработала один раз на компе, где ее делали, это еще не значит, что в ней нет ошибок. Так что она не работает  smile 

PM MAIL   Вверх
DigitSphinx
Дата 12.4.2008, 16:38 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3

Код

Error 00001. 0x400000 (Thread 0x0DB4):
Exception 0xC0000005: Access violation at 0x0.

Это я понял, я имел ввиду что эта инфа мне не нужна ))
Если cg32.dll — это и есть Code Guard значит действительно прога не рабочая.
Буду просить перекомпилить или дать код.
Всем Спасибо !

———————

Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image

PM MAIL ICQ   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «С++ Builder»
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) — крупнейший в рунете сборник материалов по Дельфи

  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »

Здравствуйте, rus blood, Вы писали:

RB>Что конкретно не работает?

Не создается объект.
В OLE/COM Object Viewer возникает ошибка:
CodeGuard detected error(s) in the program. A log file will be created.

а потом:
IClassFactory::CreateInstance failed
<No system message defined>RPC_E_SERVERFAULT ($80010105)

// CDWCDA.cpp : Implementation of CCDWCDA
#include "stdafx.h"
#include "DWCordServerNew.h"
#include "CDWCDA.h"
#include "data_access.h"

IDSADataAccess *IDataAccess = NULL;
int DWClientID = 0;
static HINSTANCE hDriver = 0;
static funcDSADriverDeInitialize *pfDSADriverDeInitialize = NULL;


////////////////////////////////////////////////////////////////////////////////////
// Constructor CCDWCDA ///////// Подключение и инициализация драйвера БД ////////////
CCDWCDA::CCDWCDA()
{
int Initialized = 0;
hDriver = LoadLibrary("bdeldw.dww");
if(hDriver) {
   funcDSADriverInfo *pfDSADriverInfo = (funcDSADriverInfo*)
      GetProcAddress(hDriver, "DriverInfo");
   funcDSADriverInitialize *pfDSADriverInitialize = (funcDSADriverInitialize*)
      GetProcAddress(hDriver, "DriverInitialize");
   pfDSADriverDeInitialize = (funcDSADriverDeInitialize*)
      GetProcAddress(hDriver, "DriverDeInitialize");
   if(pfDSADriverInfo && pfDSADriverInitialize && pfDSADriverDeInitialize) {
      if(pfDSADriverInitialize(&IDataAccess)) Initialized = 1;
      }
   }
else MessageBox(NULL,"bdeldw.dll load failure!","",MB_OK);
if(!Initialized) {
   if(hDriver) {FreeLibrary(hDriver); hDriver = 0;}
   }

DWClientID = IDataAccess->BeginWork();
if(!DWClientID) {
   if(hDriver) {FreeLibrary(hDriver); hDriver = 0;}
   }
}
////////////////////////////////////////////////////////////////////////////////////
// Destructor CCDWCDA ///////////////////////////////////////////////////////////////
CCDWCDA::~CCDWCDA()
{
if(!IDataAccess) return;

IDataAccess->EndWork(DWClientID);
pfDSADriverDeInitialize();

if(hDriver) {FreeLibrary(hDriver); hDriver = 0;}
IDataAccess = 0;
pfDSADriverDeInitialize = 0;
}

    ....   ....   ....
// DWCordServerNew.idl : IDL source for DWCordServerNew.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (DWCordServerNew.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";
    [
        object,
        uuid(95EFD011-C260-4813-9154-DF4436C2F6E7),
    
        helpstring("IDWCDA Interface"),
        pointer_default(unique)
    ]
    interface IDWCDA : IUnknown
    {
        [helpstring("method BeginWork")] HRESULT BeginWork([out] int *Result);
        [helpstring("method EndWork")] HRESULT EndWork([in] int ClientID, [out] int *Result);
        [helpstring("method CurrentProblem")] HRESULT CurrentProblem([in] int ClientID, [out] int *Result);
        [helpstring("method DeleteProblem")] HRESULT DeleteProblem([in] int ClientID, [in] int ProblemID, [out] int *Result);
        [helpstring("method DeleteParameter")] HRESULT DeleteParameter([in] int ClientID, [in] int PID, [out] int *Result);
        [helpstring("method DeleteObject")] HRESULT DeleteObject([in] int ClientID, [in] int OID, [out] int *Result);
        [helpstring("method LockModel")] HRESULT LockModel([in] int ClientID, [in] int MID, [out] int *Result);
        [helpstring("method UnLockModel")] HRESULT UnLockModel([in] int ClientID, [in] int MID, [out] int *Result);
        [helpstring("method ModelIsLocked")] HRESULT ModelIsLocked([in] int ClientID, [in] int MID, [out] int *Result);
        [helpstring("method DeleteParametersMDFNumbers")] HRESULT DeleteParametersMDFNumbers([in] int ClientID, [in] int PID, [in] int MDValues, [in] int FValues, [out] int *Result);
        [helpstring("method WriteData")] HRESULT WriteData([out] int *Result, [in] int ClientID, [in] int ID, [in,out] BSTR *Data);
        [helpstring("method ProblemProperties")] HRESULT ProblemProperties([out] int *Result, [in] int ClientID, [in] int Operation, [in] int ProblemID, [in] unsigned SubjectOfChange,  [in, out] BSTR *Name, [in, out] BSTR *Description, [in, out] int *DWValues, [in, out] int *ChangedValues, [in, out] int *CalculatedValues, [in, out] int *MDRValues, [in, out] int *ForecastedValues);
        [helpstring("method DWOperations")] HRESULT DWOperations([in] int ClientID, [in] int Operation, [out] int *Result);
        [helpstring("method ParameterProperties")] HRESULT ParameterProperties([in] int ClientID, [in] int Operation, [in] int ParameterID, [in] unsigned SubjectOfChange, [in, out] BSTR *Name, [in, out] BSTR *Nick, [in, out] BSTR *Units, [in, out] long int *Period, [in, out] int *Type, [in, out] int *LinkSource, [in, out] int *ValuesType,  [in, out] int *Volume, [in, out] int *MDRMethod, [in, out] int *DoCalculation, [in, out] int *DoAnomalies, [in, out] int *ForecastingMethod, [in, out] int *ForecastingHorizon, [in, out] int *DigitsAfterComma, [in, out] BSTR *ObjectsList, [in, out] BSTR *Categories, [in, out] BSTR *KELExpression, [in, out] BSTR *KELProgram, [in, out] BSTR *AnomalExpression, [in, out] BSTR *AnomalProgram, [in, out] BSTR *UserData, [in, out] unsigned long *Data1, [in, out] unsigned short *Data2, [in, out] unsigned short *Data3, [in, out] BSTR *Data4);
        [helpstring("method CreateParameter")] HRESULT CreateParameter([in] int ClientID, [in] int Parent, [in, out] BSTR *Name, [in, out] BSTR *Nick, [in, out] BSTR *Units, [in, out] long int *Period, [in, out] int *Type, [in, out] int *LinkSource, [in, out] int *ValuesType,  [in, out] int *Volume, [in, out] int *MDRMethod, [in, out] int *DoCalculation, [in, out] int *DoAnomalies, [in, out] int *ForecastingMethod, [in, out] int *ForecastingHorizon, [in, out] int *DigitsAfterComma, [in, out] BSTR *ObjectsList, [in, out] BSTR *Categories, [in, out] BSTR *KELExpression, [in, out] BSTR *KELProgram, [in, out] BSTR *AnomalExpression, [in, out] BSTR *AnomalProgram, [in, out] BSTR *UserData, [in, out] unsigned long *Data1, [in, out] unsigned short *Data2, [in, out] unsigned short *Data3, [in, out] BSTR *Data4);
        [helpstring("method DeleteModel")] HRESULT DeleteModel([in] int ClientID, [in] int MID, [out] int *Result);
        [helpstring("method DeleteData")] HRESULT DeleteData([in] int ClientID, [in] int ID, [out] int *Result);
        [helpstring("method DirverProperties")] HRESULT DirverProperties([in] int ClientID);
        [helpstring("method ObjectProperties")] HRESULT ObjectProperties([in] int ClientID, [in] int Operation, [in] int ObjectID, [in] unsigned SubjectOfChange, [in, out] BSTR *Properties, [out] int *Result);
        [helpstring("method CreateObject")] HRESULT CreateObject([in] int ClientID, [in] int Parent, [in, out] BSTR *Properties, [out] int *Result);
        [helpstring("method ModelProperties")] HRESULT ModelProperties([in] int ClientID, [in] int Operation, [in] int MID, [in] unsigned SubjectOfChange, [in, out] BSTR *Properties, [out] int *Result);
        [helpstring("method CreateModel")] HRESULT CreateModel([in] int ClientID, [in] int Parent, [in, out] BSTR *Properties, [out] int *Result);
        [helpstring("method ReadNumber")] HRESULT ReadNumber([in] int PID, [in] int OID, [in] __int64 Date, [in] unsigned Options, [out] double *Value, [out] double *LeftBound, [out] double *RightBound, [out] int *Result);
        [helpstring("method WriteNumber")] HRESULT WriteNumber([in] int PID, [in] int OID, [in] __int64 Date, [in] int ValueType, [in] double Value, [in] double LeftBound, [in] double RightBound, [out] int *Result);
        [helpstring("method DeleteNumber")] HRESULT DeleteNumber([in] int ClientID, [in] int PID, [in] int OID, [in] __int64 Date, unsigned Options, [out] int *Result);
        [helpstring("method ParameterPeriod")] HRESULT ParameterPeriod([in] int PID, [out] __int64 *Result);
        [helpstring("method EnumerateProblems")] HRESULT EnumerateProblems([out] int *Result, [in, out] BSTR *Problems);
        [helpstring("method SelectProblem")] HRESULT SelectProblem([in] int ClientID, [in] int ProblemID, [out] int *Result);
        [helpstring("method GetDate")] HRESULT GetDate([in] int ParameterID, [in] int ObjectID, [in] int Options, [out]  __int64 *Result);
        [helpstring("method ChangeParent")] HRESULT ChangeParent([in] int ClientID, [in] int ID, [in] int Subject, [in] int NewParent, [out] int *Result);
        [helpstring("method GetParent")] HRESULT GetParent([in] int ID, [in] int Subject, [in,out] int *ParentID, [out] int *Result);
        [helpstring("method GetIDOnNick")] HRESULT GetIDOnNick([in] BSTR Nick, [in] int Subject, [out] int *Result);
        [helpstring("method DeleteString")] HRESULT DeleteString([in] int ClientID, [in] int PID, [in] int OID, [in] __int64 Date, [out] int *Result);
        [helpstring("method CreateProblem")] HRESULT CreateProblem([in] int ClientID, [in, out] BSTR *Name, [in, out] BSTR *Description, [in, out] int *DWValues, [in, out] int *ChangedValues, [in, out] int *CalculatedValues, [in, out] int *MDRValues, [in, out] int *ForecastedValues, [out] int *Result);
    };

[
    uuid(A9B90FA4-CBEA-4727-9ABB-CD504C3C0C15),
    version(1.0),
    helpstring("DWCordServerNew 1.0 Type Library")
]
library DWCORDSERVERNEWLib
{
    importlib("stdole32.tlb");
    importlib("stdole2.tlb");

    [
        uuid(05049ACF-27E7-4B88-AB55-F1A1645029E7),
        helpstring("CDWCDA Class")
    ]
    coclass CDWCDA
    {
        [default] interface IDWCDA;
    };
};

  • Summary

  • Files

  • Reviews

  • Support

  • News

  • Wiki

  • Discussion

  • Mailing Lists

  • Tickets ▾

    • Feature Requests
    • Bugs
  • Code

Menu

Problem destroying TDialog ?


Created:

2010-09-09

Updated:

2012-09-25

  • Joseph BERAUD

    Hi,

    Migrating an old application, I have a problem with the dialog boxes under XP,
    while it’s working well under W98 ! Curiously, I have also no problems using
    wine, any emulation I try…

    The application has a lot of dialog boxes based on a class called MyTDialog,
    itself based on TDialog. Here is parts of code :

    Dialog1::Dialog1(TWindow* parent, TResId resId, TModule* module)
        :MyTDialog(parent, resId, "Dialog Title", module)
    {
        ...
    }
    
    MyTDialog::MyTDialog (TWindow* parent, TResId resId, LPSTR ATitle, TModule* module):
         TDialog(parent, resId, module)
    {
        if (ATitle!=NULL) SetCaption(ATitle);
        bkCtlBrush=new TBrush(TColor::White);
        dlgBrush=NULL;
    }
    
    MyTDialog::~MyTDialog ()
    {
        delete dlgBrush;
        delete bkCtlBrush;
    }
    
    void MyTDialog::Destroy(int retVal)
    
    {
    
        TDialog::Destroy(retVal);
    
        Parent->PostMessage(WM_PARENTNOTIFY,WM_DESTROY,(LPARAM)Handle);
    
    }
    

    The dialog box is called this way :

    if (dialog1==NULL) {
        dialog1=new Dialog1(this,IDD_GRAY_TEXT,GetModule());
        dialog1->Create();
    }
    dialog1->BringWindowToTop();
    

    With W98, all is Ok : the dialog box is created if not existing or destroyed,
    shown if created but hidden by another. But with XP, it’s impossible to re-
    create the box, as the dialog1 pointer is not set to NULL when the dialog is
    destroyed…

    Is there a way to fix this without rewriting the code of all dialog boxes ?

    Thks.

  • Ognyan Chernokozhev

    Hello,

    How should the dialog1 pointer be set to NULL? In a WM_PARENTNOTIFY handler in
    the parent?

    Jogy

  • Joseph BERAUD

    No WM_PARENTNOTIFY handler in the application… The parent is the
    application/TSDIDecFrame. As it’s working well with W98, I was supposing that
    there was some way in TSDIDecFrame class to set the right pointer to NULL…

    Well, I could add this handler, but as I don’t understand how it works under
    W98, I worry if adding the handler could make some problem ?

  • Joseph BERAUD

    Hello,

    Sorry : I was shure that TSDIDecFrame was a class of OWL library, but in fact
    it’s from a personal library !

    It’s based on TDecoratedFrame, and the event handler for WM_PARENTNOTIFY is
    done this way :

    void TSDIDecFrame::EvParentNotify(uint event, uint childHandleOrX, uint childIDOrY)
    {
        TDecoratedFrame::EvParentNotify(event, childHandleOrX, childIDOrY);
        if (event==WM_DESTROY)
            ForEach(DelChild,(void *)&childHandleOrX);
    }
    

    Ok, I understand now how it works under W98, but why is it not working under
    XP ?

    I think that it will work well if I add some code to set the pointer of the
    deleted dialog box to null. But I should like to understand the reason of this
    difference between the versions of Windows ?

  • Ognyan Chernokozhev

    Hello,

    It depends on how the dialog1 pointer is declared … and what does the
    DelChild method called from the ForEach loop do?
    Have you checked if the TSDIDecFrame::EvParentNotify is actually called?

    Also, if dialog1 is not NULL, you can call dialog1->IsWindow() to check if it
    is a valid window, and if not — then recreate it.

    Jogy

  • Joseph BERAUD

    Yes, I forgot the code of DelChild :

    void DelChild(TWindow *p,void *w)
    {
        if (*((HWND *)w)==p->Handle) {
            delete p;
        }
    }
    

    The declaration of the pointer dialog1 is done as a global variable in
    dialog1.cpp, and declared as extern in the dialog1.h.
    Part of dialog1.cpp :

    #include ...
    Dialog1 *dialog1;
    
    DEFINE_RESPONSE_TABLE1(Dialog1, TDialog)
    ...
    

    Part of dialog1.h :

    class Dialog1 : public MyTDialog {
      public:
        Dialog1(TWindow* parent, TResId resId = IDD_DIALOG1, TModule* module = 0);
    ...
    };
    
    extern Dialog1 *dialog1;
    

    Note : This application has already migrated from old versions of OWL (at
    least OWL2->OWL5, maybe also from OWL1) and old BCC compilers. I’m now using
    BCC 5.02.

    But you were right : the problem is the call of TSDIDecFrame::EvParentNotify.
    Under W98 (also Linux/wine, any emulation W98, XP, Vista or 7), it’s actually
    called, but not under XP !!!

    Why ??? I tried with the same exe, and same borland/OWLNext DLLs !

    Yes, checking dialog1->IsWindow() is a good idea to work around, and I’ll
    probably do this if I cannot solve the problem. But at least for my curiosity,
    I should like to understand what happens with Windows versions !

    Anyway, thank you for your help !

  • Ognyan Chernokozhev

    Hello,

    Can you check whether the TFrameWindow::EvParentNotify() is called — if so,
    then it is a problem with the response table of TSDIDecFrame.

    I think there shouldn’t be a general issue of EvParentNotify() because, for
    example, TFrameWindow uses it to close itself when it’s client window is
    destroyed:

    void TFrameWindow::EvParentNotify(uint event, uint childHandleOrX, uint /*childIDOrY*/)
    {
      if (event == WM_DESTROY) {
        if (ClientWnd && ClientWnd->GetHandle() == HWND(childHandleOrX))
          PostMessage(WM_CLOSE);  // using ShutDownWindow() has side effects
    ...
    

    Jogy

  • Vidar Hasfjord

    the dialog1 pointer is not set to NULL when the dialog is destroyed

    It is highly unusal for pointers to be magically set to NULL when what they
    are pointing to is deleted. It seems that you are getting closer to
    unravelling the mechanism behind this. For pointers to be deliberately reset
    like this there needs to be organised ownership rules, eg. by smart pointers
    (obviously not applicable to your scenario, as your pointer is a global; now
    you know why they are adviced against), or some call-back mechanism, as Jogy
    alludes to with the reference to EvParentNotify.

    But, in the code extracts you have shared so far, there is no indication of
    any pointer manipulation. All the EvParentNotify handler seems to do is delete
    the object of the notification, i.e the child that sent the message. Somewhere
    else there must be some code that accesses the dialog1 pointer itself. I would
    look up all usages of dialog1 in the code, looking for that elusive «dialog1
    =» statement. If I didn’t find that, I would search for any call where the
    address (or reference) of the pointer (not what it points to) could be
    transferred to a third-party, e.g. «reset(&dialog1)». The key thing here is
    that the dialog1 pointer can not change without a statement referring to it.
    What it points to, and whether or not that object is deleted or not, is a
    secondary issue, unrelated to the value of the pointer itself. Somehow,
    somewhere in your code, there is probably an assignment statement setting the
    pointer to 0. The other unlikely possibility is that the memory in which the
    pointer lives may somehow get cleared, deliberately or as a side-effect of a
    memory manipulation bug, when a window dies.

    Regards,
    Vidar Hasfjord

  • Vidar Hasfjord

    Yes, checking dialog1->IsWindow() is a good idea to work around, and I’ll
    probably do this if I cannot solve the problem. But at least for my curiosity,
    I should like to understand what happens with Windows versions !

    This is highly suspect if you don’t know whether the object the pointer points
    to is deleted or not. If the object has been deallocated the dereference will
    cause a memory access violation (crash).

  • Joseph BERAUD

    Can you check whether the TFrameWindow::EvParentNotify() is called — if so,
    then it is a problem with the response table of TSDIDecFrame.

    I’m using the pre-compiled OWLNext DLL. Is there a way to do that with it ? If
    not (what I think…), I’ll have to dowload and compile the sources.

    But I should surprised that there is a problem with the response table, as
    TSDIDecFrame::EvParentNotify is called in some other cases, and never by the
    Parent->PostMessage line in TMyDialog::Destroy()…

    @vattila :

    Yes, I was wondering about what you say. Seems that this application has been
    strangely (badly?) coded !

    It’s probably true that we have 2 problems :
    — The way that the pointer is set to NULL (unless I missed something in the code) is probably a side effect of a bad memory manipulation.
    — The TSDIDecFrame::EvParentNotify is not always called under XP.

    I worry more and more that this application has some serious bugs. But it’s
    strange that all works well under W98, and that it had a lot of changes and
    migrations, and that these problems never appeared… It has several users,
    was used with W95, W98, possibly W3.11 and nobody complained… So, bugs or
    not ?

    I’ll try to investigate more. Please, just let me know if you have some idea
    or advice, and if there is a way to check the call of EvParentNotify with the
    pre-compiled DLL.

    Thanks.

  • Joseph BERAUD

    This is highly suspect if you don’t know whether the object the pointer
    points to is deleted or not. If the object has been deallocated the
    dereference will cause a memory access violation (crash).

    Yes, you are right. But what is strange is that :
    — Under W98, the dialog box is well destroyed (the destructor is called and free memory grows) and the pointer is (how ?) well set to NULL,
    — Under XP, the EvParentNotify is not called, neither the destructor of the dialog, and the pointer is not set to NULL.

    For a part, this seems to be, as you say, side effects of memory violations,
    but for another part all seems to be logical if the call of the destructor is
    not done for any reason…

    I’ll check if I did not miss some part of code that could explain the change
    of the pointer or the call of EvParentNotify…

  • Joseph BERAUD

    Ooops ! The pointer dialog1 is set to NULL in the Dialog1 destructor.

    So, the behavior under W98 is correct and normal :-)

    The problem seems to be only the call of EvParentNotify that is not always
    done under XP, when it’s always done under W98…

  • Vidar Hasfjord

    Ah, good! I was just about to press Reply and ask to see the destructor code.
    :-)

    Well, that confirms the obvious closing sequence; EvClose sends parent notify,
    EvParentNotify deletes the child dialog; the dialog destructor clears the
    pointer, right? Now the problem is just why the notification is not arriving.

    Have you been able to set a breakpoint in the debugger and trace the execution
    from the point the dialog is closed? While stepping through the code it should
    hopefully be easy to see what happens and why EvParentNotify is not called. It
    may be caused by a dormant bug, e.g. an uninitialized variable disrupting the
    intended program flow.

  • Joseph BERAUD

    Yes, I have to trace the execution. But as I’m working under Linux/wine and
    the problem doen’t appears here, I have first to install BCC and OWL on an XP
    computer…

  • Vidar Hasfjord

    Good luck, hope you get to the bottom of it. By the way, this should be a good
    opportunity to try OWLNext 6.30… :-)

  • Joseph BERAUD

    Thank you :-)

    All is almost ready. I’ll try to debug that next week.

    I’m using OWLNext 6.30.7. I’ll install and use the last version when all
    problems will be solved.

  • Joseph BERAUD

    Hello,

    Tracing the execution shows that the TSDIDecFrame::EvParentNotify is not
    called under XP, but the response table is read. Under W98, the trace is the
    same, but EvParentNotify is called as soon as there is a PostMessage…

    I cannot understand why there is this difference. What can I do more to try to
    understand what happens ? How could I know if TDecoratedFrame:EvParentNotify
    is called ? Am I obliged to compile OWLNext with debug option ?

  • Vidar Hasfjord

    Am I obliged to compile OWLNext with debug option ?

    My advice is to do so; it shouldn’t be much trouble and could prove helpful,
    for this and other problems you may run into in the future.

  • Joseph BERAUD

    I get comfused with the libraries… The linker complains that
    OWL-630-b2-si.lib is missing. Ok, I built the wrong one (owl-630-b5-dtc5i) and
    I have probably to rebuild without compatibility mode and single threaded.

    But I want the debug version ! I don’t know what to change so that the linker
    looks for the right library (it should be owl-630-b2-dsi.lib, right ?)

  • Ognyan Chernokozhev

    Hello,

    But I want the debug version ! I don’t know what to change so that the
    linker looks for the right library (it should be owl-630-b2-dsi.lib, right ?)

    If you are using Borland C++ 5.02, then on the project Target Expert select
    «Diagnostic» — this will tell the linker to look for
    the Debug/Diagnostic libraries. You may also have to select «Codeguard», as by
    default in OWLNext 6.30 the debug libraries are built with CodeGuard support
    and if you don’t select it, you may receive linker errors for «CG32.LIB» or
    something …

    Jogy

  • Joseph BERAUD

    Hello,

    Sorry : I always forget this Target Expert…

    I compiled successfully now the right version of the DLL, using CodeGuard. I
    rebuilt the whole application, also with codeguard, but I cannot launch it : I
    obtain a «Precondition» dialog box mentionning :

    ERROR
    ** !ShouldFree && !Handle **
    File : module.cpp
    Line: 477
    Select:
      Abort
      Retry
      Ignore
    

    Then, another :

    CodeGuard detected error(s) in the program. A log file will be created
    

    Here is the log file :

    Error 00001. 0x400000 (Thread 0x0548):
    
    Exception 0xC0000005: Access violation at 0x8825FF00.
    
    Call Tree:
    
       0x00263134(=SHELL32.dll:0x03:069134)
    
       0x00799F2F(=SHELL32.dll:0x03:59FF2F)
    
       0x007BFCF2(=SHELL32.dll:0x03:5C5CF2)
    
       0x00506EEB(=SHELL32.dll:0x03:30CEEB)
    
       0x0050668F(=SHELL32.dll:0x03:30C68F)
    
       0x002885C6(=SHELL32.dll:0x03:08E5C6)
    
    ------------------------------------------
    

    What is the problem ? Is it due to the application ? I’m surprised, as with
    the precompiled version, I had not this, when the application was already
    using CodeGuard…

  • Vidar Hasfjord

    Here’s the code that complains with that precondition failure in «module.cpp»:

    //
    /// Set the instance handle for a module that does not yet have one. Cannot
    /// be called on a module that already has an instance handle.
    //
    void
    TModule::SetHandle(HINSTANCE hInstance)
    {
      PRECONDITION(!ShouldFree && !Handle);
      Handle = hInstance;
    }
    

    Seems your application is somehow calling SetHandle on a module (could be
    itself) that already has an instance handle. Set your debugger to break on the
    precondition exception and inspect the call stack.

  • Joseph BERAUD

    Interesting and curious… The first call to TModule::SetHandle generates the
    Precondition dialog box. The Call Stack contains this :

    TModule::SetHandle(this=:015649D4, hInstance=:005C0000)
    
    TModule::InitModule(this=:015649D4, hInstance=:005C0000,  =NULL)
    
    JBibl50::InitModule(this=:015649D4, instance=:005C0000, cmdLine=NULL)
    
    JBibl50::JBibl50(this=:015649D4, name=:006098DD, hInstance=:005C0000)
    
    DllEntryPoint(hInstance=:005C0000, reason=1,  =:0006FD30)
    
    :00288896  ; cw3230.DLL
    
    :005c1091  ; memmive
    
    :77f4a0ee  ; ntdll.dll
    
    :77f58ca1  ; ntdll.dll
    

    JBibl50 is a personnal DLL.

    I wonder if the explanation is in the way it is built :

    JBibl50::JBibl50(const char far* name, HINSTANCE hInstance)
        :TModule(name, hInstance)
    {
        InitModule(hInstance,NULL);
    }
    
    JBibl50::~JBibl50()
    {
    }
    
    void JBibl50::InitModule(HINSTANCE instance,const char far *cmdLine)
    {
        TModule::InitModule(instance,cmdLine);
    }
    

    Is it correct ?

    Another question : I did not noticed at first, but the link gives this result
    :

    Info :application.exe: rebuild due to dependency jbibl50d.lib
    
    Info :Linking T:Devapplicationd.exe
    
    Warn :  Warning: Undefined external type #@%TResponseTableEntry$t13TLayoutWindow%
    

    Is it a problem ?

  • Vidar Hasfjord

    I wonder if the explanation is in the way it is built :

    Yes, your constructor first calls the base constructor TModule(LPCTSTR name,
    THandle handle, bool addToList=true) which initializes the module. Your
    constructor then calls your version of InitModule which tries to initialize
    the module again. Just remove that second call, and use the command line
    version of the TModule constructors, TModule(LPCTSTR name, THandle handle,
    LPCTSTR cmdLine, bool addToList=true), to construct the base. It will call
    InitModule for you:

    JBibl50::JBibl50(const char far* name, HINSTANCE hInstance)
        :TModule(name, hInstance, NULL)
    {}
    

    If there is other stuff in your override of the InitModule function that you
    didn’t show above, but which needs to run in the constructor, then you will
    have to factor that out into a separate private initialization function and
    call that function from your constructor.

    Regarding your second question, I don’t know.

  • Joseph BERAUD

    Hi,

    I’m afraid that I miss some knowledge about OWL and debugging with BC5… I’ll
    expose my problem, but if you can advice me some document(s) that could help
    me to understand better how to do to solve this, it will probably be easier
    for everybody !

    I modified the JBibl50 constructor as you adviced (just changed :TModule(name,
    hInstance, (char *)NULL) to solve an ambiguity error), but I still have
    some execution problems.

    The TModule constructor is called twice, with these call stacks :

    Then, the execution continues with the JBibl50 constructor, finishes the
    DLLEntrtyPoint funtion, and then a message «Access violation» occurs (the
    execution trace is still on the closing brace at the end of DllEntryPoint). As
    soon as I close the message box, the BC5 ide closes itself, so I cannot know
    what happens exactly.

    I don’t know what to do to make this working properly… I’m sure that a
    better understanding of how to make a DLL enhancing or modifying the OWL
    classes should help me to understand and correct the code of JBibl50. Maybe
    just a good example showing how to do such a DLL…

Anonymous


Anonymous

В последнее время в программе возникали различные ошибки нелегального доступа. Найти такую ​​ошибку гораздо сложнее. Я видел инструмент Codeguard, который поставляется с BCB, в Интернете. Говорят, что он очень полезен. Я изучил его, но его очень просто протестировать. Пример, я чувствую себя довольно хорошо, следующий процесс тестирования:

Создать программу:

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    char * p = new char; // Применить память, нет выпуска
}
//---------------------------------------------------------------------------

Включить отладку codeguard:

Щелкните правой кнопкой мыши Параметры проекта

F9 запускает программу, и результат запрашивает: требуется разделенный сегмент данных

Я давно не нашел решения в Интернете и, наконец, нашел решение на форуме embarcadero. Ниже приведен URL

https://forums.embarcadero.com/thread.jspa?messageID=519396&tstart=0#519396

Options-C ++ Linker-Dynamic RTL имеет значение false

Опции-пакеты-пакеты времени выполнения Удалите «√» перед сборкой с пакетами времени выполнения

После перекомпиляции он запускается нормально. После закрытия программы вы можете найти файл суффикса cgl в каталоге exe. Содержимое:

Error 00176. 0x300010 (Thread 0x13DC):
Resource leak: The object (0x2483390) was never deleted

The object (0x02483390) [size: 1 bytes] was created with new
Call Tree:
   0x00401E2C(=Project1.exe:0x01:000E2C) Unit1.cpp#19
   0x00498161(=Project1.exe:0x01:097161) Controls.pas#7178
   0x0049C4BD(=Project1.exe:0x01:09B4BD) Controls.pas#9819
   0x004564C1(=Project1.exe:0x01:0554C1) StdCtrls.pas#4364
   0x0049C610(=Project1.exe:0x01:09B610) Controls.pas#9888
   0x0049C4BD(=Project1.exe:0x01:09B4BD) Controls.pas#9819
   0x0047B94D(=Project1.exe:0x01:07A94D) Forms.pas#3960
   0x0049BB5B(=Project1.exe:0x01:09AB5B) Controls.pas#9540
   0x00421F8E(=Project1.exe:0x01:020F8E) Classes.pas#13015
   0x7428D2B3(=USER32.dll:0x01:02C2B3)
   0x7426E88A(=USER32.dll:0x01:00D88A)
   0x7429764B(=USER32.dll:0x01:03664B)
   0x74270C00(=USER32.dll:0x01:00FC00)
   0x6BE4D36F(=COMCTL32.DLL:0x01:04C36F)
   0x6BE5D065(=COMCTL32.DLL:0x01:05C065)

------------------------------------------
Functions called:
 fflush (4 times)
 delete (21 times)
 memset (2 times)
 SysReallocMem (68 times)
 SysFreeMem (611 times)
 SysGetMem (612 times)
 free (20 times)
 _lsetlocale (6 times)
 new (31 times)
 calloc (9 times)
 strlen (131 times)
 realloc (1 times)
 strdup (5 times)
 malloc (5 times)
 memcpy (11 times)
Resource types used:
 object (31 allocs, 31 max)
 memory block (632 allocs, 312 max)
Modules used:
 00400000 07/11/2018 16:14:58 C:UsersyuwpDesktop111DebugProject1.exe
 052B0000 02/24/2017 19:25:32 C:Program Files
 (x86)SogouInput8.2.0.9335Resource.dll
 0CD00000 04/05/2016 06:55:00 C:Program Files
 (x86)EmbarcaderoStudio18.0binCG32.DLL
 10000000 03/02/2017 12:08:14 C:Windowssystem32SogouPy.ime
 50030000 04/05/2016 06:55:00 C:Program Files
 (x86)EmbarcaderoStudio18.0binborlndmm.DLL
 646A0000 07/16/2016 19:42:46 C:Windowssystem32apphelp.dll
 6AC00000 01/10/2017 08:32:32 C:Program Files
 (x86)SogouInputComponentsPicFace1.0.0.1630PicFace.dll
 6AEE0000 10/10/2017 10:58:02 C:WindowsSYSTEM32OLEACC.dll
 6B2D0000 10/10/2017 10:58:36 C:WindowsSYSTEM32iertutil.dll
 6B720000 10/10/2017 10:58:36 C:WindowsSYSTEM32urlmon.dll
 6BC80000 09/16/2016 01:13:52 C:WindowsSYSTEM32dwmapi.dll
 6BE00000 10/10/2017 10:58:22
 C:WindowsWinSxSx86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.
14393.953_none_89c2555adb023171COMCTL32.DLL
 6C230000 07/16/2016 19:42:50 C:WindowsSYSTEM32MSACM32.dll
 6C480000 07/16/2016 19:43:06 C:WindowsSYSTEM32UxTheme.dll
 6F720000 10/10/2017 10:57:56 C:WindowsSYSTEM32MPR.dll
 6F740000 10/10/2017 10:57:56 C:WindowsSYSTEM32ntmarta.dll
 70000000 07/16/2016 19:42:56 C:WindowsSYSTEM32samcli.dll
 70020000 07/16/2016 19:42:50 C:WindowsSYSTEM32WINMMBASE.dll
 70050000 07/16/2016 19:42:50 C:WindowsSYSTEM32WINMM.dll
 70080000 10/10/2017 10:58:32 C:WindowsSYSTEM32WINSPOOL.DRV
 703C0000 07/16/2016 19:42:50 C:WindowsSYSTEM32MSIMG32.DLL
 72CF0000 10/10/2017 10:57:56 C:WindowsSYSTEM32bcrypt.dll
 73B10000 07/16/2016 19:43:06 C:WindowsSYSTEM32VERSION.dll
 73B30000 07/16/2016 19:42:56 C:WindowsSYSTEM32USERENV.dll
 73B50000 07/16/2016 19:42:50 C:WindowsSystem32CRYPTBASE.dll
 73B60000 10/10/2017 10:58:20 C:WindowsSystem32SspiCli.dll
 73B80000 10/10/2017 10:58:22 C:WindowsSystem32KERNELBASE.dll
 73D30000 07/16/2016 19:42:56 C:WindowsSystem32msvcp_win.dll
 73E00000 10/10/2017 10:58:18 C:WindowsSystem32ole32.dll
 73F90000 09/16/2016 01:37:06 C:WindowsSystem32WS2_32.dll
 74000000 10/10/2017 10:58:04 C:WindowsSystem32ucrtbase.dll
 740F0000 07/16/2016 19:42:48 C:WindowsSystem32clbcatq.dll
 74180000 10/10/2017 10:58:18 C:WindowsSystem32KERNEL32.DLL
 74260000 10/10/2017 10:58:08 C:WindowsSystem32USER32.dll
 743C0000 10/10/2017 10:58:02 C:WindowsSystem32shcore.dll
 74550000 10/10/2017 10:58:02 C:WindowsSystem32gdi32full.dll
 746B0000 10/10/2017 10:58:02 C:WindowsSystem32MSCTF.dll
 747F0000 07/16/2016 19:42:56 C:WindowsSystem32cfgmgr32.dll
 74830000 07/16/2016 19:42:50 C:WindowsSystem32profapi.dll
 74840000 10/10/2017 10:58:20 C:WindowsSystem32RPCRT4.dll
 74910000 07/16/2016 19:42:50 C:WindowsSystem32msvcrt.dll
 749D0000 10/10/2017 10:58:22 C:WindowsSystem32SHELL32.dll
 75DB0000 07/16/2016 19:42:56 C:WindowsSystem32powrprof.dll
 75E00000 08/02/2016 12:47:22 C:WindowsSystem32win32u.dll
 75E20000 10/10/2017 10:58:20 C:WindowsSystem32sechost.dll
 75E80000 07/16/2016 19:42:46 C:WindowsSystem32PSAPI.DLL
 76240000 10/10/2017 10:58:26 C:WindowsSystem32bcryptPrimitives.dll
 762A0000 10/10/2017 10:58:08 C:WindowsSystem32GDI32.dll
 762D0000 07/16/2016 19:42:56 C:WindowsSystem32kernel.appcore.dll
 762E0000 10/10/2017 10:57:56 C:WindowsSystem32combase.dll
 76560000 10/10/2017 10:57:56 C:WindowsSystem32OLEAUT32.dll
 76600000 10/10/2017 10:58:04 C:WindowsSystem32windows.storage.dll
 76B70000 07/16/2016 19:42:50 C:WindowsSystem32advapi32.dll
 76BF0000 07/16/2016 19:42:50 C:WindowsSystem32IMM32.DLL
 77050000 07/16/2016 19:43:04 C:WindowsSystem32SHLWAPI.dll
 770A0000 10/10/2017 10:58:26 C:WindowsSYSTEM32ntdll.dll
 787E0000 10/10/2017 10:58:00 C:WindowsAppPatchAcGenral.DLL
==========================================

Сообщение об ошибке подробно описано в начале

В строке 19 файла Unit1.cpp был запрошен 1 байт и он не освобожден

При записи данных в файл и закрытии файла CodeGuard генерирует ошибки.

char *buffer = new char[10];
char data[] = "abcdefghij";
memcpy(&buffer[0], &data[0], 10);

//create file
ofstream myfile("d:/output.txt", std::ofstream::binary);

//write data
myfile.write(&buffer[0], 10);//at this line the CodeGuard throws an ERROR-1

delete []buffer;

myfile.close();//at this line the CodeGuard throws an ERROR-2

ERROR-1: Bad parameter in process: Project1.exe(3916) — c:program files (x86)embarcaderostudio15.0includedinkumwarefstream#246
A bad file or pipe stream (0x320D096C) has been passed to the function.
0x0040AC80 Call to fputc(0x61 [‘a’], 0x320D096C)

ERROR-2: Bad parameter in process: Project1.exe(3916) — c:program files (x86)embarcaderostudio15.0includedinkumwarefstream#180
A bad file stream (0x320D096C) has been passed to the function.
0x32088358 Call to [via 0x0040D030] fclose(0x320D096C)

Как это исправить?

Upd-1:

ofstream myfile("d:/output.txt", std::ofstream::binary | std::ofstream::out);
char buffer[] = "abcdefghij";

    // 
    if (myfile.is_open())
    {
    myfile.write(reinterpret_cast<char*>(&buffer[0]), 11);//+1 for 
    }

myfile.close();

Но результат все тот же.

Я пробовал использовать образец кода из http://www.cplusplus.com/reference/ostream/ostream/write/

И теперь CodeGuard выдает следующие ошибки:

ERROR-1: Bad parameter in process:
Project1.exe(5908) A bad file or pipe stream (0x3224096C) has been
passed to the function. 0x0040DE48 Call to fseek(0x3224096C, 0x0 [0],
0x2 [2])

ERROR-2: Bad parameter in process: Project1.exe(5908) A bad file or pipe stream
(0x3224096C) has been passed to the function. 0x0040DE48 Call to
fgetpos(0x3224096C, 0x0018F294)

ERROR-3: Bad parameter in process: Project1.exe(5908) A bad file or pipe stream
(0x3224096C) has been passed to the function. 0x0040DE48 Call to
fsetpos(0x3224096C, 0x0018F28C)

ERROR-4: Bad parameter in process: Project1.exe(5908) A bad file or pipe stream
(0x3224096C) has been passed to the function. 0x0040DE48 Call to
fgetc(0x3224096C)

ERROR-5: Bad parameter in process: Project1.exe(5908) A bad file or pipe stream
(0x32240984) has been passed to the function. 0x0040DE48 Call to
fputc(0x78 [‘x’], 0x32240984)

ERROR-6: Bad parameter in process: Project1.exe(5908) A bad file stream
(0x32240984) has been passed to the function. 0x321F832C Call to [via
0x0041177E] fclose(0x32240984)

Я тестировал этот код на C++ Builder XE7, XE8 и С ++ Builder 10.1 Berlin. И во всех случаях CodeGuard обнаруживал эти ошибки.

  • #1

Valve отредактировала карты = сломали (в очередной раз) сервера сообщества
Сменились сигнатуры и тем самым сервера ушли в постоянный краш (см 1.10)

[MaZa] [HotGuard] — Failed Offset 1
[SM] Unable to load extension «hotguard.ext»:
[SDKTOOLS] Sigscan for WriteBaselines failed
[SDKTOOLS] Failed to find WriteBaselines signature — stringtable error workaround disabled.
[AntiDLL] Sigscan for Signature failed
[SM] Unable to load extension «AntiDLL.ext»: Failed to create interceptor
[SM] Failed to load plugin «hotguard.smx»: Unable to load plugin (bad header).
[SM] Unable to load plugin «AntiDLL.smx»: Required extension «AntiDLL» file(«AntiDLL.ext») not running
[SM] Exception reported: Failed to get engine poiters. Data: 0, 0, F0D92D44, F0E311CC.
[SM] Blaming: block_print_garbage_messages.smx
[SM] Call stack trace:
[SM] [0] SetFailState
[SM] [1] Line 48, d:SourcePawn1.10block_print_garbage_messages.sp::OnPluginStart
[SM] Unable to load plugin «block_print_garbage_messages.smx»: Error detected in plugin startup (see error logs)
[SM] Unable to load plugin «CrashPlayer_AntiDLL.smx»: Required extension «AntiDLL» file(«AntiDLL.ext») not running
[SM] Exception reported: Can’t get offset for «CBaseServer::RejectConnection».
[SM] Blaming: server_redirect.smx
[SM] Call stack trace:
[SM] [0] SetFailState
[SM] [1] Line 9, server_redirect/redirect.sp::SetupSDKCalls
[SM] [2] Line 198, C:UsersartDesktopaddonsёsourcemodscriptingserver_redirect.sp::OnPluginStart
[SM] Unable to load plugin «server_redirect.smx»: Error detected in plugin startup (see error logs)
[SM] Exception reported: Failed to load CBaseServer::IsExclusiveToLobbyConnections signature from gamedata
[SM] Blaming: nolobbyreservation.smx
[SM] Call stack trace:
[SM] [0] SetFailState
[SM] [1] Line 87, nolobbyreservation.sp::OnPluginStart
[SM] Unable to load plugin «nolobbyreservation.smx»: Error detected in plugin startup (see error logs)

Послетали сигнатуры
CBaseServer::RejectConnection
CBaseServer::IsExclusiveToLobby

upd: Если хотите до сих пор использовать см 1.10 linux — скачивайте архив с см 1.11 6928, оттуда переносите все файлы из папки addons/sourcemod/gamedata/ с заменой. (остальные файлы из других папок не трогайте)
Под остальные плагины исправления — ищите файлы с фиксом сигнатур в соответствующих темах.

Последнее редактирование: Суббота в 10:30

  • #661

Сервер работает минут 10-15 и крашится. Отключил папку plugins и запустил без плагинов и не крашит. Сейчас сижу перебираю, какой из плагинов крашит его.

  • #662

@j1ton, все скрипты скомпилируй под обнову, у меня всё работает, только вип шприцы не робят, жду обнову

Последнее редактирование: Суббота в 14:43

  • #663

у кого нибудь крашит при смене карты? или только у меня, все обновлено… без единой ошибки

Сообщения автоматически склеены: Суббота в 14:41

@j1ton, все скрипты скомпилируй под обнову, у меня всё работает, только вип шприцы не робят, жду обнову
upd: серв падает спустя минут 10 онлайна, ошибка чтения errors_log, не знаю в чём трабл

gamedatу обнови и все.

Последнее редактирование: Суббота в 14:41

  • #664

у кого нибудь крашит при смене карты? или только у меня, все обновлено… без единой ошибки

Сообщения автоматически склеены: Суббота в 14:41

gamedatу обнови и все.

мне не помогла обнова gamedata, у меня проблема в каком-то плагине видимо, вот сижу ищу

  • #665

у кого нибудь крашит при смене карты? или только у меня, все обновлено… без единой ошибки

Сообщения автоматически склеены: Суббота в 14:41

gamedatу обнови и все.

так же. При компиляции пишет ошибки в синтаксисе.

  • #666

У меня sourcemod 1.11 сервер отлично работает, только проблема с плагином shop_skins.smx (не выключаются скины) и с плагином res.smx (не проигрывается музыка)
Приложу свои gamedata и extensions, (не нужное вам, удалите) попробуйте.
» Не забудьте в /addons/sourcemod/configs/core.cfg «DisableAutoUpdate» поставить на «yes» «

  • gamedata.zip

    135.7 КБ

    · Просмотры: 24

  • extensions.zip

    22.1 МБ

    · Просмотры: 24

  • #667

L 02/04/2023 - 15:11:04: Info (map "de_mirage") (file "/home/server26921/game/csgo/addons/sourcemod/logs/errors_20230204.log")
L 02/04/2023 - 15:11:04: [SM] Exception reported: Failed to create native "BaseComm_IsClientGagged", name is probably already in use
L 02/04/2023 - 15:11:04: [SM] Blaming: basecomm.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] CreateNative
L 02/04/2023 - 15:11:04: [SM]   [1] Line 71, /home/builds/sourcemod/debian9-1.11/build/plugins/basecomm.sp::AskPluginLoad2
L 02/04/2023 - 15:11:04: [SM] Failed to load plugin "basecomm.smx": unexpected error 23 in AskPluginLoad callback.
L 02/04/2023 - 15:11:04: [AntiDLL] Sigscan for Signature failed
L 02/04/2023 - 15:11:04: [SM] Unable to load extension "AntiDLL.ext": Failed to create interceptor
L 02/04/2023 - 15:11:04: [Discord/DropsSummoner_discord.smx] At address g_pDropForAllPlayersPatch received not what we expected, drop for all players will be unavailable.
L 02/04/2023 - 15:11:04: [SM] Exception reported: [System Panel] [Users Chat DataBase] Failed to connection SP_users in databased.cfg
L 02/04/2023 - 15:11:04: [SM] Blaming: users_chat.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 39, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_chat.sp::Connection_BD
L 02/04/2023 - 15:11:04: [SM]   [2] Line 31, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_chat.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "users_chat.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Exception reported: [MA] Database failure: Could not find Database conf "materialadmin"
L 02/04/2023 - 15:11:04: [SM] Blaming: admin/materialadmin.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 44, materialadmin/database.sp::ConnectBd
L 02/04/2023 - 15:11:04: [SM]   [2] Line 16, materialadmin/database.sp::MAConnectDB
L 02/04/2023 - 15:11:04: [SM]   [3] Line 286, materialadmin.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "admin/materialadmin.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "admin/ma_mutenotification.smx": Could not find required plugin "materialadmin"
L 02/04/2023 - 15:11:04: [SM] Exception reported: [Clans] No database configuration in databases.cfg!
L 02/04/2023 - 15:11:04: [SM] Blaming: clans/clans.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 11, clans/database.sp::ConnectToDatabase
L 02/04/2023 - 15:11:04: [SM]   [2] Line 240, A:ssmodscriptingclans.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "clans/clans.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "clans/clan_createall.smx": Native "Clans_GetClientTimeToCreateClan" was not found
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "clans/clans_coinsbykill.smx": Native "Clans_AreClansLoaded" was not found
L 02/04/2023 - 15:11:04: [SM] Exception reported: [CustomPlayerArms] - Не удалось получить адрес s_playerViewmodelArmConfigs
L 02/04/2023 - 15:11:04: [SM] Blaming: CustomPlayerArms.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 38, C:UsersanakaineDesktopxxxCustomPlayerArms.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "CustomPlayerArms.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:04: [SM] Exception reported: [System Panel] [Users Visits DataBase] Failed to connection SP_users in databased.cfg
L 02/04/2023 - 15:11:04: [SM] Blaming: users_visits.smx
L 02/04/2023 - 15:11:04: [SM] Call stack trace:
L 02/04/2023 - 15:11:04: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:04: [SM]   [1] Line 28, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_visits.sp::Connection_BD
L 02/04/2023 - 15:11:04: [SM]   [2] Line 23, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers_visits.sp::OnPluginStart
L 02/04/2023 - 15:11:04: [SM] Unable to load plugin "users_visits.smx": Error detected in plugin startup (see error logs)
L 02/04/2023 - 15:11:05: [SM] Unable to load plugin "vip/vip_clancreate.smx": Native "Clans_SetCreatePerm" was not found
L 02/04/2023 - 15:11:05: [SM] Unable to load plugin "Admins.smx": Could not find required plugin "materialadmin"
L 02/04/2023 - 15:11:05: [SM] Exception reported: [System Panel] [Users DataBase] Failed to connection SP_users in databased.cfg
L 02/04/2023 - 15:11:05: [SM] Blaming: users.smx
L 02/04/2023 - 15:11:05: [SM] Call stack trace:
L 02/04/2023 - 15:11:05: [SM]   [0] SetFailState
L 02/04/2023 - 15:11:05: [SM]   [1] Line 44, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers.sp::Connection_BD
L 02/04/2023 - 15:11:05: [SM]   [2] Line 21, c:UsersauthtDesktopplugins-syspaneladdonssourcemodscriptingusers.sp::OnPluginStart
L 02/04/2023 - 15:11:05: [SM] Unable to load plugin "users.smx": Error detected in plugin startup (see error logs)

есть фиксы этих плагинов?

  • #668

У меня sourcemod 1.11 сервер отлично работает, только проблема с плагином shop_skins.smx (не выключаются скины) и с плагином res.smx (не проигрывается музыка)
Приложу свои gamedata и extensions, (не нужное вам, удалите) попробуйте.
» Не забудьте в /addons/sourcemod/configs/core.cfg «DisableAutoUpdate» поставить на «yes» »

включаю сервер и при запуске он включается но в консоле пишет Could not establish connection to Steam servers.

  • #669

Тоже замечаю краши, но пока понять не могу из за какого плагина…

  • #670

L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVServer::BroadcastLocalChat failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVServer::BroadcastLocalChat detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StartRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StartRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StopRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StopRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Failed to get CHLTVServer::m_DemoRecorder offset.

gamedata sourcetvmanager.

  • #671

Тоже замечаю краши, но пока понять не могу из за какого плагина…

Попробуй выключить всё, что связано со скинами(shop, ws, vip)

У меня к примеру после оф. Фикса не стартовал сервер с ws о фени.

И осталась одна ошибка:

[CSTRIKE] [CStrike] Failed to locate NET_SendPacket signature.

Решил попробовать перейти на 1.12 но без изменений, ошибка так и осталась.
Можете подсказать, что это и как решить? Буду очень благодарен

  • #672

L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVServer::BroadcastLocalChat failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVServer::BroadcastLocalChat detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StartRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StartRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Sigscan for CHLTVDemoRecorder::StopRecording failed
L 02/04/2023 - 15:29:43: [STVM] CHLTVDemoRecorder::StopRecording detour could not be initialized.
L 02/04/2023 - 15:29:43: [STVM] Failed to get CHLTVServer::m_DemoRecorder offset.

gamedata sourcetvmanager.

Решение.

  • sourcetvmanager.games.txt

    12.5 КБ

    · Просмотры: 14

  • #673

есть какие ни будь рабочие gamedata и extensions на 1.11 то уже все перепробовал нечего не хочет запускаться

  • #674

есть какие ни будь рабочие gamedata и extensions на 1.11 то уже все перепробовал нечего не хочет запускаться

листай тему, тут всё скидывали.
У меня всё запускается и всё работает, но вот проблема в том что у меня сервер онли мираж, и почему он меняет карту на рандомную и сервер крашится.

  • #675

листай тему, тут всё скидывали.
У меня всё запускается и всё работает, но вот проблема в том что у меня сервер онли мираж, и почему он меняет карту на рандомную и сервер крашится.

те которые кидали не работают

  • #676

Есть у кого сошка феникса под 1.11?

  • #677

кинте пожалуйста basecomm.smx рабочий

  • #678

Есть у кого сошка феникса под 1.11?

На 1.11 нет сошки, если не ошибаюсь

  • #680

у кого то было что тоже не робит AntiDLL?

Unable to load plugin "AntiDLL.smx": Required extension "AntiDLL" file("AntiDLL.ext") not running

Понравилась статья? Поделить с друзьями:
  • Codeblocks fatal error iostream no such file or directory
  • Codeblocks environment error что делать
  • Codebase error unrecognized field name
  • Codebase error 70 reading file
  • Codebase error 630 optimization file flushing failure