起動中のウィンドウを知る プログラムは、現在デスクトップにどのようなウィンドウがあるのかを知り そして、そのウィンドウを制御するためのハンドルを必要とするかもしれません もちろん、必要な時以外には 異なるプログラムのウィンドウを制御するようなことは避けるべきですが プログラムによっては、その必要に迫られる時もあることでしょう Windows は、げんざい有効なウィンドウのハンドルを列挙する EnumWindows() 関数を提供しています これを用いれば、有効なメインウィンドウのハンドルを全て取得できます BOOL EnumWindows(WNDENUMPROC lpEnumFunc , LPARAM lParam); lpEnumFunc は、WNDENUMPROC 型の関数へのポインタを指定します これは、アプリケーション定義のコールバック関数へのポインタです lParam には、列挙
MFC + ODBCを使ったデータベースアクセス ①ODBCアドミニストレータでのデータソース登録 ②アプリケーションの作成 #include <afxdb.h> //←追加します。 //SELECTを実行する場合-------------------------------------------------------------------------------------- void ***Dlg::OnBnClickedButton1() { //接続文字列生成 CString strCon = "DSN=MS Access 97 Database;UID=Admin;PWD="; //Windows認証でSQLServerを使用する場合 //CString strCon = "DSN=SQLServerTest;"; CDatabase db; //接続 db.OpenEx(
(これは2010-10-31に書いた故OCNブログの記事を移植したものです) Visual C++ 付属の ATL にはわりと便利なユーティリティ クラスがあるんですが、あまり知られてないのでひとつ紹介します。 CPathT Class | Microsoft Docs ATL::CPath は Windows Shell API の Path*関数を薄くラップしたクラスなんですが、ATL::CString とともに Windows アプリでは重宝するかと。 atlpath.h をインクルードすれば、非 ATL/MFC プロジェクトであっても使えるようになります。 #include <atlpath.h> void AtlPathTest() { const LPCWSTR pAnswerStr[] = { L"No", L"Yes" }; { const CPathW paths[] =
この記事では C++11 から導入された型推論 auto の使いどころ,使うべきでない場面を紹介します. 可読性や保守性の高いプログラムにするために記事が役立てば幸いです. (筆者の考え方が偏っているかもしれません.是非,ご意見ご感想をお寄せください) 結論をまとめると次の通りです. auto を使った方が良いのは 右辺の式から型がはっきりわかる 具体的な型があまり重要ではない ラムダ式を受け取る auto を使うべきでないのは その場所でその型になっていることを保証する 親クラスの参照として受け取る その変数を後でオーバーロードされた関数に渡す 型推論 auto C++11 から型推論のための auto キーワードが導入されました. auto を使うと具体的な型を書かずにコンパイラに型の決定を任せることができます. 詳しい仕様・使い方は auto - cpprefjp C++日本語リファ
Visual Studioなどで開発していると、バージョン番号はリソースで値を管理することになります。 リソースで設定すると、内容がEXEファイルのプロパティの詳細タブでも確認できるようになるので便利ですね。 このような情報は1か所で管理するべきなので、バージョン情報画面などを出した場合リソースから値を取得する必要があります。 TCHAR fileName[ MAX_PATH + 1 ]; DWORD size; BYTE* pVersion; VS_FIXEDFILEINFO* pFileInfo; UINT queryLen; CString fileVersion; ::GetModuleFileName( NULL, fileName, sizeof( fileName ) ); size = ::GetFileVersionInfoSize( fileName, NULL );
See GCC options for minimizing code footprint. Full lowmem uses "pointer compression" and ROM-based strings/objects. ROM-based strings/objects can also be used without other low memory options. Current status Stable Support Duktape Wiki: wiki.duktape.org User community Q&A: Stack Overflow duktape tag Bugs and feature requests: GitHub issues General discussion: IRC #duktape on chat.freenode.net (we
若干釣りタイトルですが,私が「Rust にはない C++ の良さ」を募ったところ,12 個ほどの優れている点が報告されたので,まとめてみます. 背景 私は 2018/10/08 開催予定の技術書典5で,『C++でできる!OS自作入門』と題して,Clang+LLD で C++ を使って OS 開発する際の注意点とか C++ の活用例を解説する同人誌を書こうと思っています. その下調べもかねて,このようなツイートをしました. C++好きな人!ぜひ,RustにはないC++の良さを教えてください!— C++でOS自作 技術書典5 お05 (@uchan_nos) 2018年8月24日 そうしたら知り合いからこんなリプが飛んできました. これ、まとめてblogにして!— shoma (@shoma) 2018年8月24日 一部の人に参考になるかもしれないのでまとめることにしました.ただしネタ多めです
A tool for use with clang to analyze #includes in C and C++ source files "Include what you use" means this: for every symbol (type, function variable, or macro) that you use in foo.cc, either foo.cc or foo.h should #include a .h file that exports the declaration of that symbol. The include-what-you-use tool is a program that can be built with the clang libraries in order to analyze #includes of so
こんにちは、Visual Studio サポート チームです。 今回は、Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題とその影響についてご案内します。 この問題は以下のように Stack Overflow でも報告されておりましたが、この度、複数のお客様から弊社へお問い合わせをいただきましたので本ブログでもご紹介させていただきます。より多くの開発者様のお役に立てましたら幸いです。 VC2015で、double変数ddx_textのトラブル https://ja.stackoverflow.com/questions/16592/vc2015%E3%81%A7-double%E5%A4%89%E6%95%B0ddx-text%E3%81%AE%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB 現象 _snsc
Results of the Grand C++ Error Explosion Competition 少し前に、C++のコンパイルエラーの長さを競うコンテストが開催されていました。 受賞のカテゴリは2つあり、ひとつめは最小コードで最大のコンパイルエラーを出した人、もうひとつは芸術的な評価による受賞です。 最小コードで最大のコンパイルエラー この部門で優勝したのはEd Hanwayさんという方で、ソースコード量に対して59億倍のコンパイルエラーメッセージを出力したそうです。 それには、自身を2回インクルードするという手法が使われていたそうです。 #include ".//.//.//.//jeh.cpp" #include "jeh.cpp" 次点として、インクルードに後方参照を使用した、7億9千万倍のコンパイルエラーを出力するコード: #include "set>.cpp" #incl
C#の拡張メソッドやRubyのオープンクラス、Swiftのextension、Objective-Cのカテゴリーの活用例に近い感覚のものを実現させます。 既存のクラスにメソッド(メンバ関数)を追加する方法と関数(フリー関数)で代替する方法、演算子の多重定義を活用する方法の3種類の方法を紹介します。 フリー関数(例:print(std::string("s"));) 演算子関数(例:std::string("s")-print;) メンバ関数(例:std::string("s").print();) オススメはフリー関数版の利用です。その他のイディオムは扱いが難しく、実用性には難があります。 フリー関数 もっとも簡単で手軽な方法です。 フリー関数の第一引数にオブジェクトの参照を渡し、その参照値を元に関数内で独自処理を記述していきます。 void print(const std::string
コーディングスタイル編 プライベートメンバの命名をアンダースコアで始める アンダースコアで始まるメンバ変数やメンバ関数を暗黙的にプライベートメンバとみなす。 struct Number { // 非公開メンバ変数 double _value; // 非公開メンバ関数 std::string _stringValue() { return std::to_string(_value); } // 公開メンバ関数 double value() { return _value; } double doubleValue() { return _value; } int intValue() { return _value; } void setValue(double value) { _value = value; } }; シンボル名を見ただけで、それがプライベートなメンバであることが瞬時に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く