タグ

c++に関するsayiのブックマーク (30)

  • マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間の変換を行うライブラリを作りました(SJIS, UTF-8, UTF-16に対応。SJIS⇔UTF-8の変換も可能) - Qiita

    マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間の変換を行うライブラリを作りました(SJIS, UTF-8, UTF-16に対応。SJIS⇔UTF-8の変換も可能)C++WindowsVisualStudioCygwinMinGW C++Windowsアプリを作る場合に、マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間で変換しなければならないことがあります。今回は、Windows API の MultiByteToWideChar() と WideCharToMultiByte() を使って変換を行うライブラリ(ヘッダーオンリー)を作ってみました(文末の strconv2.h を保存してお使いください。C++専用です。Cでは使えません)。また、内部的にワイド文字列を経由することで シフトJIS⇔UTF-8

    マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間の変換を行うライブラリを作りました(SJIS, UTF-8, UTF-16に対応。SJIS⇔UTF-8の変換も可能) - Qiita
    sayi
    sayi 2022/01/21
    マルチバイト文字列とワイド文字列
  • C++のjsonライブラリ決定版 nlohmann-json - Qiita

    C++のJSONライブラリには、例えばpicojsonとかboost/property_treeとかいくつかのものがあるが、それらのライブラリの中でもnlohmann-jsonライブラリが使いやすさや完成度、使用実績の点で群を抜いている。 多くのプロジェクトで使われている人気のあるライブラリなのだが、日語の記事があまりないので家のreadmeから重要な部分を要約する形で紹介する。 githubページはこちら。 https://github.com/nlohmann/json この記事で使ったソースコード全体のgistはこちらにある。 https://gist.github.com/yohm/27d69509403b593778b2564e61bbc871 特徴 直感的なシンタックス ヘッダオンリー 標準C++11で書かれていて外部ライブラリへの依存無し homebrewでもインストール

    C++のjsonライブラリ決定版 nlohmann-json - Qiita
    sayi
    sayi 2022/01/18
  • Reporting Events - Win32 apps

    To report events, you must first define the events in a message text file. For details on writing a message text file, see Message Text Files. The following shows the message text file used in this example. ; // MyEventProvider.mc ; // This is the header section. SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS Informational=0x1:STATUS_SEVERITY_INFORMATIONAL Warning=0x2:STATUS_SEVERITY_WARNING E

    Reporting Events - Win32 apps
  • C++ - 最新の C++ を使用した Windows レジストリへのアクセス

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 May 2017 Volume 32 Number 5 C++ - 最新の C++ を使用した Windows レジストリへのアクセス Giovanni Dicanio Windows OS は、開発者がレジストリにアクセスできるように、一連の C インターフェイス API を公開しています。このような API の一部は非常に低レベルで、プログラマは細部詳細の多くに注意を払う必要があります。Windows Vista からは、これに混在するように、ある種高度な API として RegGetValue 関数 (bit.ly/2jXtfpJ) が加わりました。この API が導入されるまでは、レジストリから値を読

    C++ - 最新の C++ を使用した Windows レジストリへのアクセス
  • C/C++のビルドの仕組みとライブラリ - かみのメモ

    研究でVisual C++を書くうちに、そういえばリンカとかライブラリの仕組みを理解していなかったな、と思ったので色々調べてみました。 書きやすいからという理由で説明口調の文章にしていますが、多分に間違いを含む可能性があります!(オイ) 気付いた部分があればコメントしていただけるとありがたいです。 ※ 2018/12/01 : #pragma once周りを追記しました ※ 2018/12/23 : ライブラリを使うためのビルド設定の話を追記しました スポンサーリンク もくじ 1. ビルドとは 2. C/C++のビルドの仕組み 2.1. プリプロセッサ 2.2. コンパイラ 2.3. アセンブラ 2.4. リンカ 3. ライブラリの種類と仕組み 3.1. ソースコードを配布 3.2. 静的リンク(static linking) 3.3. 動的リンク(dynamic linking) 3.4

    C/C++のビルドの仕組みとライブラリ - かみのメモ
  • ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita

    はじめに はじめまして。 NTTデータ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 C や C++ を使用しているとしばしばビット演算を行う場面が出て来ます。 計算機リソースが限られている状況では、ビットを用いることでデータ量を少なく済ませたり、計算コストを小さく抑えたりすることができるメリットがあります。 記事では、ビット演算を用いて実現できる処理について、簡単なものから高度なものまで集大成します。極力わかりやすく頑張って執筆しました。特に前半 4 つはビットの説明の中でもかなりわかりやすい方だと思います。後半の 7 つのテーマは比較的高度なアルゴリズムの話題ですので、フラグ管理やマスクビットについて詳しく学びたい方は前半 4 つを中心に読んでいただいて、後半 6 つは必要に応じて読んでいただければと思います。反対にビットの知識はあってビットを用いたアルゴリズ

    ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita
    sayi
    sayi 2018/02/20
    ビット演算
  • 完全解説「C++でTDD」さらに「MFCでgoogletest」を使うまで - hirocueki's blog

    http://code.google.com/p/googletest/ テスト駆動開発入門posted with ヨメレバケント ベック ピアソンエデュケーション 2003-09 Amazon楽天ブックス 目次 ライブラリをビルドするgoogletestをプロジェクトに組み込むテストを書くMFCアプリケーションでテストを書く 1.ライブラリをビルドする 1-1.ソースの取得gtest-1.6.0.zip ダウンロード→展開 解凍したフォルダをリネームします「gtest-1.6.0」->「gtest」 1-2.ライブラリの作成gtest\msvc にある「gtest.sln」を開きます。 [構成プロパティ][全般]から、文字セットをgoogletestを使うプロジェクトに合わせる。 [構成プロパティ][C/C++][コード生成]の、ランタイムライブラリをgoogletestを使うプロジェク

    sayi
    sayi 2016/03/28
  • やじやじ's 温COM知新

    今や Windows開発環境は、新しい .NET Frameworkが拡大しつつあり、 開発言語も C#や VB .NETが広まっていくことでしょう。 そのような中で、従来のCOMはどうなるのでしょう。 COMは依然として重要な機能であり、DirectXなどの主要なインターフェイス、 また .NETアプリケーションをホストするカスタム環境を構築するのであれば、 COMが必要になります。 今後、.NET対応アプリケーションを作る人でも、何らかの形でCOMの知識は必要 となるでしょう。 ここでは、主に .NET環境での開発をするので直接 COMアプリケーションを作る 機会は少ないので、COMの習得にそれほど時間はかけられないのだけれども、 どうにかして COMをマスターしたいという方を想定して、 COMをできるだけ短期間で理解できるように、 様々なCOMの情報を集大

  • WindowsXP解説書、Web上で無料公開 - Programming Magic

    調べてみるとどうも今年の8月には既に公開されていたようだが、GIGAZINEの記事で始めて知った。 少し中を見てみると、内容はGIGAZINEに「上級ユーザー用の書籍」とあるが初心者~中級者向けという感じがする。 ページには広告が非常に多く、ぶっちゃけ見にくい。 だからこそ販売中のの中身を公開しても問題ないと判断したのだろう。 「書籍完全公開に至った理由」 確かにこの方法なら、書店に置くよりも人の目に付くし、サイトのアクセスアップにも大きく貢献する。 そして、これだけ広告が挿入されていれば、よりもWebで文章を読むことの方が好きな私でも、で読みたいと思いそうだ。 実際にどうなるかはわからないが、十分な見返りがあるように思える。 著者以外の人の視点から言えば、広告がうざくても見れないよりは良いと思うだろうし、この方法はなかなかいいものだと思う。 の内容が古くなったらStandard

    sayi
    sayi 2014/12/03
  • マイクロソフトは、C++でいかにしてMicrosoft Officeのクロスプラットフォームを実現したのか

    マイクロソフトは、C++でいかにしてMicrosoft Officeのクロスプラットフォームを実現したのか マイクロソフトはOfficeソフトウェアのマルチプラットフォーム展開を進め、Windows版、Macintosh版だけでなくWebから使えるOffice Onlineに加え、iPad版、Android版も公開を始めました。 Officeのような大規模なアプリケーションのマルチプラットフォームへの移植は、どのようにして行われているのか。9月に米国で開催されたC++言語のイベント「CppCon 2014」で行われた同社の講演「How Microsoft Uses C++ to Deliver Office (and More) Across iOS, Android, Windows, and Mac, Part I 」がYouTubeで公開されています。 Officeのコア部分はC++

    マイクロソフトは、C++でいかにしてMicrosoft Officeのクロスプラットフォームを実現したのか
  • The So-Software Studio

    2013/11/23 Document - TypeScript プログラミング 公開。 2012/11/04 Document - [SL4A] WSGI 公開。 2012/03/31 Document - [ATL/WTL] WTL8.1.11324 から WTL8.1.12085 への変更点 公開。 2012/03/29 Document - [ATL/WTL] Visual Studio 2010 へ WTL をインストール 公開。 2012/02/04 Document - [SL4A] HTTP サーバ 公開。 2012/01/04 Document - [SL4A] SQLite 公開。 2011/12/04 Document - [ATL/WTL] WTL8.1.9127 から WTL8.1.11324 への変更点 公開。 2011/10/30 Document - [SL

    sayi
    sayi 2014/03/06
  • 文字列を示す "abc"、_T("abc")、L"abc" は全て意味が違う!(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. 文字を代入するときに使う " " (ダブルクオーテーション)。Windowsプログラミングでは_T(" ") を見かけることが多いから、それに倣って... char pszText[256]; strcpy(pszText,_T("あいうえお")); というようなソースコードを書いていないだろうか?残念ながらこれは大きな間違えだ。実はこの _T(" ")いうのはcharやWCHARに対してTCHARがあるのと同じで、ユニコードビルド時はユニコード文字列を、非ユニコード文字列時はSH

    sayi
    sayi 2014/01/17
    文字列を示す "abc"、_T("abc")、L"abc" は全て意味が違う!
  • 64ビットプログラミングのポイント

    従来の32ビット環境に慣れてしまったプログラマがしばしば犯してしまうミスを交えつつ、32ビット環境から64ビット環境へ移行する際に注意すべき代表的なC言語のプログラミング例を紹介しよう。(特集:64ビットコンピューティング最前線) C MAGAZINE 2004年10月号第3特集「64ビットコンピューティング」より転載 64ビット環境へ移行する際の注意点 ここでは、従来の32ビット環境に慣れてしまったプログラマがしばしば犯してしまうミスを交えつつ、32ビット環境から64ビット環境へ移行する際に注意すべき代表的なC言語のプログラミング例を紹介します。 もちろん、32ビット環境でプログラムを書いたことのないプログラマにも有用な情報です。 ポインタをint型やlong型変数に代入しない ポインタをint型やlong型変数に代入し、それを操作してはいけません。 アセンブラまたはインラインアセンブラ

    64ビットプログラミングのポイント
    sayi
    sayi 2013/04/02
  • C++ のヘッダファイルを #include するだけで使える GC 書いてみた - kazuhoのメモ置き場

    そういえば C++ のヘッダファイルを #include するだけで使える GC を書きました。使い方は下のサンプルコードを見てもらえばいいとして、特徴としては、 ヘッダファイルを #include するだけで使える C++ の標準機能だけを使っているのでポータブル*1 mark-and-sweep, precise GC ってなあたりでしょうか。コードは GitHub - kazuho/picogc: a tiny, portable, precise, mark-and-sweep GC in C++ にあります。 C++プロジェクトで、ちょっとここだけは GC がほしいんだけど、ってなケースで使いやすいと思います。速度も、そこそこでるんじゃないかな*2。 というわけで、以下、サンプルコード。軽く説明しておくと、 GC を使うクラスは picogc::gc_object を継承する

    C++ のヘッダファイルを #include するだけで使える GC 書いてみた - kazuhoのメモ置き場
  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

  • C++ 開発者が陥りやすい OpenMP* の 32 の罠 | iSUS

    この記事は、インテル® ソフトウェア・ネットワークに掲載されている「32 OpenMP traps for C++ developers」 (http://software.intel.com/en-us/articles/32-openmp-traps-for-c-developers/) の日語参考訳です。 はじめに マルチコアシステムが急速な広がりをみせており、並列プログラミングへの早急な対応が求められています。しかしながら、経験豊富な多くの開発者にとってもこれは新しい分野です。既存のコンパイラーとコード・アナライザーでも、並列コードの開発中に一部の問題を発見することはできますが、多くの問題は検出できません。この記事では、OpenMP* を使用する並列プログラムが正しく動作しない原因となるさまざまな問題について説明します。 概要 並列プログラミングが登場したのはかなり以前のことです

    C++ 開発者が陥りやすい OpenMP* の 32 の罠 | iSUS
  • Get Started with Win32 and C++ - Win32 apps

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    Get Started with Win32 and C++ - Win32 apps
  • Object-Oriented & Java maneuver 別室

    Object-Oriented & Java maneuver 別室 オブジェクト指向技術Javaを主にしたプログラミング言語、コンピュータ関連技術について公開しているサイトです。 題名が「別室」となっていますが、現在こちらのサイトが主となっています。(2008.9.15) サイトの更新履歴? Torutk Webサイト更新(更新は停止状態^^;) はてなのtorutkの日記 torutkの技術活動(読書会、講演、執筆、など) プログラミング言語JavaJava周辺技術 Javaプログラミング How To JavaでCORBAプログラミングのページ Java Media Framework Java Webアプリケーション Grails - Javaベースのスクリプト言語Groovyで記述されたWebアプリケーションフレームワーク SOAとJava AspectJ Java起動高速

  • C言語・C++言語用テスティングフレームワーク - Cutter

    最新リリース 2019-09-13にリリースされた1.2.7が最新です。 [ダウンロード] [変更点] Cutterとは Cutterは書きやすさ・デバッグのしやすさを重視したC言語・C++言語用のテスティングフレームワークです。メンテナンスしやすく、利用効果の高い単体テスト(ユニットテスト)の開発を支援します。 また、テストを苦痛ではなく、楽しいものにすることも重視しています。スクリーンショットはテスト結果の通知機能を利用している様子です。文字としてテストのパス・失敗を伝えるだけではなく、視覚的にも通知することで、テスト結果をわかりやすくします。わかりやすいので、頻繁にテストを実行したくなります。この機能はnotify-sendコマンド(Linuxや*BSDなどの場合)またはgrowlnotifyコマンド(macOSの場合)を利用します。 動作環境 CutterはDebian GNU/L

  • C++ Style Guide

    Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below. Hooray! Now you know you can expand points to get more details. Alternatively, there's an "expand all" at the top o