powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / В какой части кода освобождать память
5 сообщений из 5, страница 1 из 1
В какой части кода освобождать память
    #33730089
DubAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть проект, который при компиляции формирует DLL. И есть исполняющая программа для этой DLL. Код исполняющей программы изменять нельзя. В коде DLL выделяется память под массив:
Код: plaintext
arr =new Tarr[kolTelN];
Если исполняющую программу закрывают, то память должна освобождаться:
Код: plaintext
delete [] arr;
Проблема в том, что я не знаю, куда вставить этот код с удалением (в DLL).
Вопрос: Куда?
...
Рейтинг: 0 / 0
В какой части кода освобождать память
    #33730135
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используй std::vector
...
Рейтинг: 0 / 0
В какой части кода освобождать память
    #33730256
freebeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
   if (dwReason == DLL_PROCESS_ATTACH)
   {
      // Extension DLL one-time initialization 
      if (!AfxInitExtensionModule(
             extensionDLL, hInstance))
         return  0 ;

      // TODO: perform other initialization tasks here
   }
   else if (dwReason == DLL_PROCESS_DETACH)
   {
      // Extension DLL per-process termination
      AfxTermExtensionModule(extensionDLL);

          // TODO: perform other cleanup tasks here
   }
   return  1 ;   // ok
}
...
Рейтинг: 0 / 0
В какой части кода освобождать память
    #33732149
DubAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал следующую функцию в файле cpp моей DLL:
Код:
1.
2.
3.
4.
5.
6.
7.
8.
BOOL APIENTRY DllMain(HANDLE hModule, DWORD  fdwReason, LPVOID lpReserved)
{
    if(fdwReason==DLL_PROCESS_DETACH)
	{
		return TRUE; 
	}
	return FALSE;
}

Теперь появляется ошибка:
Код:
1.
2.
3.
4.
5.
nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in gsm.obj
nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in gsm.obj; second definition ignored
   Creating library Debug/dataserv.lib and object Debug/dataserv.exp
Debug/dataserv.dll : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

Как ее исправить?
...
Рейтинг: 0 / 0
В какой части кода освобождать память
    #33732182
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DubAlex
Как ее исправить?

http://support.microsoft.com/kb/q148791/
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / В какой части кода освобождать память
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]