Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
#1

Что делать с warning : CA2122 : Microsoft.Security ? - C++

06.02.2014, 16:50. Просмотров 241. Ответов 1
Метки нет (Все метки)

Добрый день уважаемые форумчане!
Закончил свой проект и решил протестировать его анализатором кода MVS2012 (в процессе компилирования) на предмет warning... (Просто компилятор их не выдает). Удалось устранить почти все (большей частью не внимателен был) кроме:

Кликните здесь для просмотра всего текста
MSBUILD : warning : CA2122 : Microsoft.Security : 'COpenGL:: Dispose(bool)' выполняет вызов в 'COpenGL::~COpenGL(void)', для которого задана проверка LinkDemand. Выполняя этот вызов, 'COpenGL::~COpenGL(void)' косвенно предоставляется пользовательскому коду. Рассмотрите следующий стек вызова, который может раскрыть способ обхода защиты безопасности:
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(void)'
MSBUILD : warning : CA2122 : Microsoft.Security : 'COpenGL:: Dispose(bool)' выполняет вызов в 'NativeWindow::Finalize(void)', для которого задана проверка LinkDemand. Выполняя этот вызов, 'NativeWindow::Finalize(void)' косвенно предоставляется пользовательскому коду. Рассмотрите следующий стек вызова, который может раскрыть способ обхода защиты безопасности:
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(void)'


код конструктора и деструктора вот:
C++
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
namespace OpenGLForm 
{
    [ComVisible(false)]
    public ref  class COpenGL sealed: public System::Windows::Forms::NativeWindow
    {
    public:
                GridP *gr;
        INT32 ig,jg,kg;
        double rm, xc1,yc1,zc1; 
        double ax,ay;
        bool        isGrid  ;                                       
                bool        isCoord ;       
        bool        isBody ;
                bool        isClicked  ;                                        
                bool        isRClicked ;        
                bool        isMClicked ;    
                bool        isDragging;     
                bool        isFon;      
                bool  isEnabled;
                double sfac;
 
 
    [EnvironmentPermissionAttribute(SecurityAction::LinkDemand, Unrestricted=false)]
        COpenGL(IntPtr parentForm, GLsizei iWidth, GLsizei iHeight)
        {
            
            CreateParams^ cp = gcnew CreateParams;
            sfac=1;
            cp->X = 0;
            cp->Y = 0;
        xc1=0;
        yc1=0;
        isEnabled=false;
            cp->Height = iHeight;
            cp->Width = iWidth;
        isClicked  = false;                                     
            isRClicked = false;                                     
            isDragging = false;     
        isGrid=true;                                        
            isCoord=true;       
        isBody=true ;   
        isFon=true ;    
            cp->Parent = parentForm;
            cp->Style = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |WS_TABSTOP|WS_BORDER ;
        this->CreateHandle(cp);
        }
[EnvironmentPermissionAttribute(SecurityAction::LinkDemand, Unrestricted=false)]
 ~COpenGL(System::Void)
        {
        
            glDeleteLists(base, 96);
            this->DestroyHandle();
       }
Как это обойти? Или не замарачиваться?
Заранее благодарю за Вашу критику и советы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2014, 16:50     Что делать с warning : CA2122 : Microsoft.Security ?
Посмотрите здесь:

Что означает этот warning? - C++
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x Появляется когда я меняю это: pvertex.x =...

Что такое __pragma(warning()) ? - C++
Вот код макроса: #define PTM_WARNING_DISABLE \ __pragma(warning( push )) \ __pragma(warning( disable : 4867 )) Что эти функции...

Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы - C++
Заранее спасибо.

что делать? - C++
ребята помогите решить задачу :) Даны вещественные массивы А,B определить значения вещественного массива С по правилу : С=cумме...

что делать? - C++
#include "stdafx.h" #include <stdio.h> #include <math.h> #include <string.h> #include "iostream" using namespace std; ...

CXX0030 что делать? - C++
Столкнулся с проблемой, не хотят создаваться структуры в классе (именно в данном примере). Все вроде бы нормально написано, но поставив...

что делать с уравнениями? - C++
Простите пожалуйста срочно нужна помощь, разобраться в задании. Писать слишком много поэтому пришлось выложить фотографии. Мне не надо...

Что делать с EOF - C++
Всем привет. Ввожу в Visual Studio 2012 вот такой код: #include <stdio.h> #include <conio.h> #define eof -1 int main() { long...

Что делать с LINK1120 - C++
При отладке в списке ошибок пишет про неразрешенный элемент LINK 1120 и неразрешенный внешний символ _tmainCRTStartup.Если что то у меня...

не запускаются программы! что делать? - C++
не запускаютя программы! подскажете что делать с начала компилирую программы (0 ошибок),затем запускаю её.... но выводится сообщение :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 20:28  [ТС]     Что делать с warning : CA2122 : Microsoft.Security ? #2
Да еще один вопрос: этим кто-нибудь вообще пользуется? Все ли рекомендации исполняемы???
Миниатюры
Что делать с warning : CA2122 : Microsoft.Security ?  
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru