Ответы пользователя по тегу Visual Studio
  • Как посчитать до какого значения заполнен массив по каждому из измерений?

    Nipheris
    @Nipheris Куратор тега C#
    И этот массив заполнен некоторыми строковыми значениями, но не полностью, а только до некоторых значений.

    Это предположение неверно. Массив не бывает заполнен частично, до некоторых значений. В массиве всегда есть все значения, просто при создании массива они устанавливаются в дефолтовые.
    Вам нужно хранить ваши значения в структуре переменного размера, например в списке (List).
    Либо, раз уж у вас значения строкового типа, вы можете воспользоваться тем фактом, что строка - это ссылочный тип, и поэтому может иметь значения null. Вы можете идти по элементам массива до первого встретившегося null и считать его первым "незаполенным" элементом, если это подходит для вашей задачи (правда, тогда это придется делать каждый раз заново).
    Ответ написан
    Комментировать
  • Как создать проект на С# в MS VS 2015?

    Nipheris
    @Nipheris Куратор тега C#
    Поищите книгу, где C# изучить можно на простейших вариантах приложений, например на консольных. Windows Store возможно вам нафиг не сдался, тем более что для 10-ки это уже UWP.
    Ответ написан
    Комментировать
  • Как создать круглую кнопку button со вставленным в неё SVG-изображением, на языке XAML?

    Nipheris
    @Nipheris Куратор тега C#
    1) переделайте/сконвертируйте изображение так, чтобы это был Drawing:
    <GeometryDrawing Brush="#FF8B0000">
          <GeometryDrawing.Geometry>
            <PathGeometry ....... />
          </GeometryDrawing.Geometry>
        </GeometryDrawing>

    Если PathGeometry несколько, используйте DrawingGroup.
    2) поместите полученный XAML в ресурсы;
    3) попробуйте мой велосипед для того, чтобы поместить изображение в кнопку:
    <Image Source="{Binding Source=путь_к/картинке.xaml, Converter={StaticResource ResourceUriToDrawingImageConverter}}" />

    Код конвертера:
    public class ResourceUriToDrawingImageConverter : IValueConverter
    	{
    		public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    		{
    			Uri uri =
    				value is Uri ?
    					value as Uri :
    				value is string ?
    					new Uri(value as string, UriKind.RelativeOrAbsolute) :
    					null;
    
    			if (uri == null)
    			{
    				throw new Exception("Invalid URI value");
    			}
    
    			StreamResourceInfo sri = Application.GetResourceStream(uri);
    			if (sri == null)
    			{
    				throw new Exception("Resource not found");
    			}
    
    			using (Stream stream = sri.Stream)
    			{
    				var drawing = XamlReader.Load(stream) as Drawing;
    				if (drawing == null)
    				{
    					throw new Exception("Resource cannot be converted to drawing");
    				}
    
    				return new DrawingImage(drawing);
    			}
    		}
    
    		public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    		{
    			throw new NotImplementedException();
    		}
    	}

    P.S. Следите за репой https://github.com/Nipheris/SharpVectors.MSBuild - там скоро появятся MSBuild-таски для конвертирования SVG прямо во время сборки проекта.
    Ответ написан
    Комментировать
  • Что происходит с кодировкой файлов C#?

    Nipheris
    @Nipheris Куратор тега C#
    Судя по скрину, у вас для UTF-8 потерялся BOM.
    Скорее всего это произошло потому, что вы считали файл неверной кодировкой (в файле у вас UTF-8 вроде как). Используйте кодировку явно, например UTF8Encoding вместо дефолтовой.
    Ответ написан
    Комментировать
  • Как правильно спроектировать службу?

    Во-первых вам нужно ОЧЕНЬ ЧЕТКО понять принципиальную разницу между терминами "WCF service" и "windows service", т.к. общего между ними немного. Первое это про веб-сервисы, второе - это тоже что и демоны в *nix-системах. Первое это про архитектуру распределенной системы, второе это про жизненный цикл программы (как, когда и кем запускается/останавливается).

    Поэтому:
    1) если разработка под Винду, и
    "служба должна выполнять в фоне некоторые действия с бд"

    то почитайте про Windows Service - на шарпе такие пишутся относительно просто. Это не единственный способ запустить процесс, который будет крутиться и сам что-то делать в базе, но он предпочтителен.
    2) если взаимодействие с клиентом подразумевается не по самодельному протоколу, а например по HTTP, то вам срочно нужно ознакомиться с тем, что такое веб-сервисы/веб-API и какие они бывают. Если вы уже понимаете что это такое, то вам нужно выбрать способ реализации под Дотнетом.

    Подскажите, это можно сделать в рамках одной службы или нет?

    Если под службой понимается Windows-служба, то можно. Стоит ли - другой вопрос, зависит от тех действий, которые вы хотите выполнять в фоне, архитектуры БД и политики работы с ней.
    Ответ написан
    Комментировать
  • Почему не подгружаются в код зависимости NuGet?

    1) проверьте, выполняется ли nuget restore. Вот прям сами откройте packages, зайдите в папки конкретных пакетов и проверьте что там лежат скачанные сборки
    2) к сожалению в классических проектах на C# (не DNX) взаимодействие с NuGet довольно посредственное. В том смысле, что содержимое проекта и packages.config может рассинхронизироваться (ввиду отстутсвия единого списка пакетов/сборок, как это сделали в project.json). Т.е. в packages.config все будет, но в csproj эти ссылки не будут прописаны.
    Выход из ситуации - открыть ручками csproj и поставить нужные Reference, прописав относительные пути на сборки в packages, вроде таких:
    <Reference Include="NetTopologySuite.IO.ShapeFile">
          <HintPath>..\..\packages\NetTopologySuite.IO.1.13.3.2\lib\net40-client\NetTopologySuite.IO.ShapeFile.dll</HintPath>
        </Reference>

    Конкретный путь надо смотреть вам (на сколько уровней "выйти" и в какие папки "зайти"). Сначала нужно, конечно, проверить, нет ли уже этих ссылок - возможно просто папка packages почему-то уехала на новое место, и пути просто испортились.
    Ответ написан
  • Как установить в Visual Studia Modeling Projects?

    Секретная техника:
    1) гуглим "visual studio community vs enterprise";
    2) открываем один из первых результатов - Compare Visual Studio 2015 Offerings;
    3) разворачиваем секцию "Architecture and Modeling", видим, что в Community доступен только пункт "Visualize solutions with Dependency Graphs and Code Maps" со сноской "Can open diagrams generated in other Visual Studio editions in read-only mode";
    4) делаем соответствующие выводы.
    Ответ написан
    Комментировать
  • Можно ли перейти от реализации для win(opengl,height map)?

    Nipheris
    @Nipheris Куратор тега C++
    0) закапываем GLUT, берем GLFW (www.glfw.org ); если это неприемлемо, отпишитесь в комментариях, сделаем другую инструкцию;
    1) берем пример, делаем окно по примеру: www.glfw.org/documentation.html
    2) когда убедились, что окно появляется и все работает, начинаем перетягивать код из урока;
    3) вызов кода отрисовки (который DrawGLScene) вставляем вместо /* Render here */;
    4) объявления виндовых дескрипторов убираем (HDC, HWND и прочие); windows.h тоже вроде не нужен;
    5) для обработки событий клавиатуры читаем вот это: www.glfw.org/docs/latest/input.html#input_keyboard , для мыши вот это: www.glfw.org/docs/latest/input.html#input_mouse . По сути все элементарно: устанавливаются колбэки, в которых уже находится код обработки;
    6) для того, чтобы адекватно выйти из главного цикла приложения (это тот, который while (!glfwWindowShouldClose(window))) в нужном месте (например, по нажатию ESC) вызываем glfwSetWindowShouldClose.

    Итого WindowProc вам уже не нужна, из WinMain возможно понадобится код инициализации и код обработки клавиатуры нужно будет вынести в колбэк.
    Вопросы в комментарии, все сразу не расскажешь.

    P.S. Вообще поищите современные туториалы, это OpenGL 2.0, этот API уже никому не нужен, в 3-м OpenGL всю архитектуру перекроили (зачем? Например затем, что вызывать glVertex для каждой вершины - это слишком затратно). Старые уроки вам будут полезны только для общего развития в CG.
    Ответ написан
    2 комментария
  • Почему при попытке подписать сборку выходит ошибка?

    Nipheris
    @Nipheris Куратор тега C#
    При создании PKCS#12-контейнера (он же PFX) укажите настройку, что ключ разрешено использовать только для создания электронной подписи. Например. для openssl pkcs12 это параметр -keysig. Вы какой утилитой создавали ключ? sn?
    Ответ написан
    1 комментарий
  • Как перехватывать весь трафик и перенаправлять на прокси в C# или С++ (пишу в VS)?

    Nipheris
    @Nipheris Куратор тега C++
    Вадим Егоров
    > подключение к прокси при настройке через панель управления осуществляется по протоколу HTTP
    Конечно по HTTP, под "прокси" обычно и понимают как раз таки HTTP-прокси. Если вам нужно перенаправлять ЛЮБЫЕ TCP-соединения, т.е. в том числе те, которые не имеют вообще никакого отношения к HTTP (например, SMTP), то тогда обычно пользуются соксами (https://en.wikipedia.org/wiki/SOCKS), а если программа сама не умеет инкапсулировать трафик в этот протокол - то используют соксификатор, например такой www.freecap.ru .
    Нужен ли вам socks или нет - это зависит от того, что у вас там за прокси. Я еще раз отмечу, что не понимаю, что это за сервер такой, что он шифрует и по какому протоколу работает. Если это ваш собственный протокол, то тогда у вас два пути:
    1) вы пишете локальный socks-прокси, направляете программы через него (путем настройки программы или путем насильственной соксификации), а он уже шифрует трафик как вам надо и общается с УДАЛЕННЫМ прокси по ВАШЕМУ протоколу
    2) вы пишете аналог соксификатора, т.к. программу, которая будет форсировать передачу трафика через себя, и также будет шифровать его и направлять по ВАШЕМУ протоколу на удаленный прокси. Тогда вам скорее всего и придется разбираться с перехватом пакетов. Самым простым вариантом будет использование WinPcap - тогда не нужно будет работать в режиме ядра (это не самая простая вещь на свете), плюс в современных версиях этой же либой можно и отправлять пакеты: www.winpcap.org/docs/docs_412/html/group__wpcap__t... . FreeCap реализует иной подход - он перехватывает вызовы Winsock API у целевого процесса, заменяя их на свои функции. Вариант интересный, но ИМХО менее надежный.
    Ответ написан
  • Как сделать релиз проекта с directx?

    Nipheris
    @Nipheris Куратор тега C++
    Подключить в релизной конфигурации релизные библиотеки и выбрать релизную конфигурацию при сборке проекта.
    Ответ написан
    7 комментариев
  • Microsoft Visual Studio 2013, как перейти от простого вывода в консоли до полноценных программ?

    Nipheris
    @Nipheris Куратор тега C++
    как начать создавать программы с интерфейсом?

    Понять, что C++ имеет большую экосистему с множеством библиотек, которыми надо научиться пользоваться. Узнать, что такое Qt, wxWidgets, услышать краем уха про MFC (но не пользоваться без необходимости). Обязательно узнать про boost.
    Visual Studio 2010 я перетаскивал элементы кнопок, меню и тп. как показать это меню?

    Сложно догадаться, где вы это перетаскивали. В студии есть не только C++, то и масса других языков и технологий, возможно вы пользовались Windows Forms в связке с C#.
    Ответ написан
  • Как можно использовать Visual Studio 2013 Platform Toolset в Visual Studio 2015?

    Nipheris
    @Nipheris Куратор тега C++
    1) поставить компилятор из 2013-й студии;
    2) выбрать установленный тулсет в свойствах проекта.
    Ответ написан
    2 комментария
  • Почему не изменяется версия библиотеки в Visual studio?

    Nipheris
    @Nipheris Куратор тега C#
    > с более поздней версией
    ну тогда уж с более ранней

    > Проверяю версию добавляемой библиотеки перед тем как добавить
    Добавляете из какого списка? Browse?

    Откройте папку со сборкой в проводнике и проверьте в свойствах версию. Если там будет 2.0.0.0, то студия не при чем.

    Кстати, а в NuGet этой либы нету?
    Ответ написан
    4 комментария
  • Как перекомпилировать проект под x86 платформу?

    Nipheris
    @Nipheris Куратор тега C++
    Win32 это и есть x86 (по кр. мере в контексте компилятора Microsoft Visual C++)
    Ответ написан
  • Как исправить ошибку LNK2019 при использовании статического метода?

    Nipheris
    @Nipheris Куратор тега C++
    Теоретически заголовочный файл в проект подключать не обязательно, это для вашего удобства (чтобы вы не теряли файлы, которые у вас есть в проекте). А вот cpp нужно полюбому, т.к. иначе у компилятора не попросят его собрать, а линковщику - не расскажут, что есть объектный файл (который получится после компиляции), который содержит реализации неких функций. Результат - линковщик ищет-ищет, и не находит релизацию метода.
    Если бы у вас был lib а не cpp, то ситуация та же самая, только без этапа компиляции. Грубо можете считать lib-файл группой собранных воедино объектных файлов. В нем уже скомпилированный код находится, поэтому его нужно передавать сразу линковщику. Для этого в ключах линкощика указываются так называемые Library Directories - директории, где искать библиотеки, а также dependencies - какие конкретно lib-файлы надо просматривать при линковке. В студии есть как глобальный список таких директорий, так и локальные настройки для каждого проекта.
    Ответ написан
    1 комментарий
  • MVP как правильно вернуть переменную во ViewModel прогрессбара?

    Nipheris
    @Nipheris Куратор тега C#
    Посмотреть бы на код, который регулярно считывает progressVal из модели и пихает в прогресс-бар. Иными словами, SetValProg откуда еще вызывается, кроме как при старте? Лично я пока не вижу никакой проблемы с потоками, про которую говорит tex0, т.к. из другого потока устанавливается только интовое поле у Model.
    Ответ написан
    Комментировать
  • Как скомпилировать проект Visual Studio 2015 под VЫ2010?

    Nipheris
    @Nipheris Куратор тега C#
    1) убедиться, что все зависимости имеют версии для .net 4.0 или ниже
    2) переделать те места в коде, которые используют фичи C# > 4.0
    3) сменить версию целевого .net framework на 4.0 в свойствах проекта
    Ответ написан
    2 комментария