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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Сформировать массив С из исходных двух по правилу: http://www.cyberforum.ru/cpp-beginners/thread1090768.html
ПОМОГИТЕ!!! Заданные два массива: A (n) и B (n). Сформировать массив C (n) следующим образом: ci = max {ai, bi}, если i - четное; ci = min {ai, bi}, если и - нечетное
C++ Определить является ли лабиринт правильным. определить является ли лабиринт правильным.Правильный лабиринт - такой лабиринт, в котором из любого места в любое другое можно попасть только одним способом. ОБЯЗАТЕЛЬНО! Решить эту задачу как-то с помощью очереди. http://www.cyberforum.ru/cpp-beginners/thread1090763.html
Передача массива в функцию. Не могу понять что не так C++
Добрый вечер. Помогите, пожалуйста, решить проблему. Задание такое: Дана целочисленная прямоугольная матрица, все элементы которой различны. Поменять местами столбцы, содержащие минимальный и максимальный элементы матрицы. Найти количество строк, среднее арифметическое элементов которых меньше заданной величины. Необходимо выполнить в двух вариантах: 1. Используя локальные массивы....
operator+ overload C++
#include <iostream> class point { private: int x; int y; public:
C++ Доступ к элементу структуры, массив которых хранится в vector http://www.cyberforum.ru/cpp-beginners/thread1090722.html
Как получить доступ к элементу структуры, если несколько структур хранится в vector? Я прохожу по вектору через итератор. vector<trade>::iterator it; for(it=first.begin();it!=first.end();it++) { } В цикле я хочу каждый раз записывать все элементы структуры trade в строку и выводить на экран.
C++ Создание собственной функции Даны натуральные числа m, n и целые числа A1,..., An; B1,..., Bm;C1,..., C10. Создать собственную функцию для расчёта минимума из массива чисел MIN(L). Вычислить значение выражения, используя функцию MIN(L): L=min(B1,...,Bm)+min(C1,..., C10)/1+(max(A1,..., An) #include <iostream> #include <math.h> #include "stdafx.h" template<typename T> T massmin(int from, int to, T *m) { T ret = m;... подробнее

Показать сообщение отдельно
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 16:50     Что делать с warning : CA2122 : Microsoft.Security ?
Добрый день уважаемые форумчане!
Закончил свой проект и решил протестировать его анализатором кода 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();
       }
Как это обойти? Или не замарачиваться?
Заранее благодарю за Вашу критику и советы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru