Visual Studio 2022 Lambda + OpenMP 的問題

這篇算是紀錄一下,Heresy 這邊在想把開發環境從 Visual Studio 2019 升級到 Visual Studio 2022 時,踩到的新版編譯器在 lambda expression 這邊的地雷,算是稍微紀錄一下了。

Heresy 這邊踩到的地雷,是 lambda expression + OpenMP 的相容性問題;下面就是一個會出問題的簡單程式碼:

#include <iostream>
 
int main()
{
  auto f = []()
  {
    #pragma omp parallel for //Error
    for (int i = 0; i < 10; ++i)
    {
    }
  };
 
  return 0;
}

閱讀更多»

原生 64 位元的 Visual Studio 2022 正式推出

今年四月,微軟就有公布新的 Visual Studio 2022 會是第一款原生 64 位元的 Windows 整合式開發環境了~而從六月開始,微軟也不停地釋出新的預覽版,讓眾多的開發者幫忙找問題。

現在,Visual Studio 2022 終於推出正式版了!他的官方網站是 https://aka.ms/vs2022,官方的公告則是《Visual Studio 2022 now available》;下面則是官方的介紹影片:

閱讀更多»

C++AMP 已死

C++ AMP 是微軟在 2011 年發表、在 2012 年推出的一套適用於 GPGPU、大量平行化的 C++ 函式庫。他基本上算是相對高階的 GPGPU 開發方案,由於底層是使用 DirectX 來做的,所以理論上能支援不同廠牌的顯示卡(參考《C++ AMP 相關資料》)。

不過,由於 Heresy 這邊還是有考慮到要跨到 Linux 環境的問題,所以簡單玩了一下後,就沒有去認真研究這個東西了。(不過由於 C++AMP 屬於開放標準,倒也真有人在 CLANG/LLVM + OpenCL 弄出了 C++AMP 的實作;參考《Bringing C++AMP Beyond Windows via CLANG and LLVM》)

而前幾天,忽然和到 Google 推薦的文章《C++ AMPの死について》,這才發現原來 C++AMP 也已經被微軟賜死了…

閱讀更多»

由 dll 檔建立 lib 檔(修改 lib/dll 名稱)

通常一個 Windows 下 C/C++ 的動態連結函式庫(Dynamic-link library、維基百科微軟的文件),會有三種東西:開發時使用的 header 檔、連結階段需要的 lib 檔、以及執行階段才需要的 dll 檔。

在這個架構下,實際上所有的程式都已經編譯好、儲存在 dll 檔案裡面了,實際上真的需要,也是可以在執行階段直接去讀取 dll、抓出裡面的函式來用的;但是在有 header 和 lib 的時候,開發上還是比較方便的。

而實際上,lib 檔主要的功能,就是告訴編譯器(其實是連結器)這個 dll 檔裡面有哪些函式可以用而已;在編譯的時候,系統只會去檢查 lib 的內容,而不會去管 dll 檔。

閱讀更多»

使用 Visual Studio 建置 Qt 6

由於 Heresy 這邊是用 Qt(官網)作為圖形介面程式開發的環境,所以在很久之前,Heresy 曾經記錄過自己建置 Qt 4.6.3 的經驗;不過後來,由於決定放棄自己建置、而是改用 Qt 官方提供的 Qt SDK,所以就沒研究怎麼自行建置了。

但是相對地,當引進 GitLab CI/CD 後,就變成得研究怎麼在 Windows Docker 裡面安裝 Qt SDK 了。

開始玩這部分後,才發現 Qt 在這部份真的很討厭…本來以為弄好第一次後,以後就沒什麼問題了,但是後來 Qt 一直修改他的安裝程式,導致常常過一段時間要重建 Docker image 的時候,安裝 Qt SDK 的腳本就廢掉、要修改(2020/02)…

閱讀更多»

64 位元 Visual Studio 2022 將於今夏推出預覽版

官方訊息是《Visual Studio 2022》。

基本上,雖然主流 Windows 已經進入 64 位元很久了,但是微軟自家的 Visual Stduio,卻一直維持在 32 位元(devenv.exe 這個主要的程序),在開啟超大型專案的時候,有的時候還是會有一些記憶體使用上的限制。

而微軟下一個 Visual Studio 的大版本、Visual Stduio 2022,將會是第一個 64 位元版本的 Visual Studio!

不過這個版本也還沒推出,要到夏天才會推出第一個預覽版本。

閱讀更多»

Visual Studio 的遠端偵錯:Windows

一般來說,在使用 Visual Studio 開發軟體的時候,大部分的程式偵錯,應該都會是在裝有 Visual Studio 的本機來進行。

但是有的時候,其實還是會碰到只能在某些設定上測試、或是只有在某些電腦上有問題的狀況;這個時候,如果沒辦法在那台電腦上安裝肥大的 Visual Studio 的話,其實會讓偵錯變得很麻煩。

而實際上,針對這種情況,微軟其實是有提供「遠端偵錯」的機制,讓開發者可以在本來的 Visual Studio 開發環境、透過網路連線到遠端的電腦來進行測試、除錯的。

這部分的官方文件,可以參考《Remote Debugging》,Heresy 這邊算是簡單紀錄一下 Heresy 自己透過這個機制來進行遠端 C++ 程式偵錯的經驗。

閱讀更多»