コンピュータや音楽の事書いてます

C++

C++Builder UnicodeStringとchar*文字列の連結

C++

これがあるとき UnicodeString s = "xxx" これはできるのに UnicodeString where = " abc" + s + " = :" + s; これは出来ない UnicodeString where = "and " + " abc" + s + " = :" + s; 理由:char*とUnicodeStringをつなぐときには+演算子と自動変換が inc…

c++Builder [ilink32 エラー] Error: 未解決の外部シンボル 'Excel_xp::CLSID_ExcelApplication' が xxx から参照されています

Excel関連の処理のある、C++Builder 4.2 のプロジェクトをbcc32(従来のコンパイラ)からbcc32c(Clang)へ移行するときの話。 C++Builder -> プロジェクト -> オプション -> C++コンパイラ -> "従来のコンパイラ" を外した場合、Clangによるコンパイルに切…

C++Builder エラーメッセージをググっても見つからないとき

Embarcadero C++Builderの情報はネット上でも非常に少なく、日本語のエラーメッセージをググっても事例などが見つからないことが多い。 英語に変更すれば見つかる可能性が高まる。 また、バッチコンパイルでコンパイルの高速化をした際、メッセージが文字化…

ちょっと気になったので実験 C と javascript

if文の中にカンマ区切りで複数命令を書いたら、どういう判定か? #include <iostream> using std::cout; int main(){ int a, b; if(a = 0, b = 1){ cout << a << b << endl; } } /* 結果 01 */ #include <iostream> using std::cout; int main(){ int a, b; if(a = 1, b = 0){ co</iostream></iostream>…

Visual C++ からIWshRuntimeLibraryを使用したイベントログ出力

VC++でもVBScriptの様に、Wscript.Shellを使ってイベントログを出力出来ると思い、調べてみた所、LogEvent関数というのが用意されていたので、以下の様にしてイベントログを出力してみた。 #include <windows.h> #undef GetFreeSpace #define GetFreeSpace GetFreeSpace</windows.h>…

VC++でADSI

ADSIとはプログラムからActive Directoryへのアクセス方法を提供してくれるAPI。普通これを使う時はVBScript、VB、C# のいずれかだと思う。 今回、VC++でやって欲しいという仕事でえらい苦労したので、そのメモ。メインの使用インターフェイスはこちら。ヘッ…

c++11(c++0x)でcgi

c++11でテキスト処理が大分楽に出来る様になってきたので、そろそろcgiもc++で良いのではないか? 使うライブラリ候補 fastcgi++ 用途が合ってるのか不明 cgicc http://www.gnu.org/s/cgicc/ 良さげ CGI++ http://www.webthing.com/cgiplusplus なんか古そう…

VC/MFCメモ

MDI/SDIでOnSaveDocument時に独自の(Serializeを使わない)save処理をする場合は return CDocument::OnSaveDocument(lpszPathName); これを消さないと、せっかくセーブしたファイルを空ファイルで上書きしてしまう。

c++0xメモ initializer_list , 型推論 , range-based forなど

const char[] → initializer_list → string の暗黙型変換など #include <vector> #include <string> #include <iostream> using namespace std; template <class T> void outarray(initializer_list<T> list){ for(auto x : list){ cout<<"*--- number "<<x<<" ---*"<<endl; } } template <> void outarray(initializer_list</x<<"></t></class></iostream></string></vector>

VCメモ:DLL

DLL側のEXEから呼び出される関数の先頭にはこれが必要。 AFX_MANAGE_STATE(AfxGetStaticModuleState()) これが無いとAfxGetApp()などの結果がEXE側のアドレスになってしまう。

C++/CLR バンザイ...

C++/CLRを使えば、VCから.net Frameworkが使える。 無駄に難しいMFC・WTLももう勉強する必要はない。速度が必要な時はネイティブC++を、GUIには.netを使える、理想の環境が待っている・・・・ そう思っていた。っがしかし、最近仕事でVisual Studio 2010 Ult…