C++

コンストラクタから仮想関数を呼ぶ

C#の場合、オーバーライドされたメソッドが呼び出されます。C++出身の私としては違和感がありますが、ふと、C++/CLIだとどーなるか気になりました。

OggStream

昨日のOggサンプルをStreamクラスで実装してみた。

System.Media.SoundPlayer

NET2.0ではSoundPlayerクラスが用意され、簡単にサウンドが使えるようになっています。試しにoggを演奏させるプログラムを書いてみました。 #include <windows.h> #include <Mmreg.h> #include <stdio.h> #include <math.h> #include <vorbis/codec.h> #include <vorbis/vorbisfile.h> #using <System.dll> using namespace System; using namespace </system.dll></vorbis/vorbisfile.h></vorbis/codec.h></math.h></stdio.h></mmreg.h></windows.h>…

Unmanaged Assemblies

C++

昨日のVisual C++ 2005(というかコンパイラ、リンカ)の変更についてフォロー。足し算、引き算をするライブラリ(math.cpp)を作ってみます。 #include <stdio.h> extern "C" __declspec (dllexport) void add (int x, int y) { printf ("%d + %d = %d\n", x, y, x + y);</stdio.h>…

宿題の片付け

C++

http://d.hatena.ne.jp/akiramei/20040811#p1で放置したままだったVC++2005でのテストを今頃やりました。(^^; #include "stdafx.h" const int loop = 1024 * 64; int _tmain(int argc, _TCHAR* argv[]) { DWORD t0 = GetTickCount(); char a[loop]; for(int …

初めてのC++/CLIその3

今回は型についてです。C#やっててC++を知らない場合、class/structで混乱するかもしれません。C++におけるclass/structは単にアクセス修飾子のデフォルトがprivate/publicの違いだけです。では値型、参照型は何で決まるのかというとref/valueキーワードに因…

初めてのC++/CLIその4

templateとgenericsの比較。genericsはよくtemplateみたいなものと紹介されますが、実際のところtemplateに比べると出来ることはかなり限定されています。なので、boostみたいなライブラリをこさえてやるぜ!みたいなこと考えているとガッカリします。(^^; …

初めてのC++/CLIその2

基本からということで文字列と配列について実験です。 #include "stdafx.h" using namespace System; using namespace System::Runtime::InteropServices; using namespace std; // arrayやpin_ptrを使うのに必要 using namespace stdcli::language; void te…

初めてのC++/CLI

最近、すっかり遠のいているC++ですが、今回は結構変わったのでちょっと弄ってみようと思います。 #include "stdafx.h" using namespace System; // ネイティブなクラス class NativeClass { std::string name; public: NativeClass(const std::string& name…

C++/CLI

Candidate C++/CLI Language Specification ちょっと古いですが、ISO標準にもなるC++/CLIの仕様。delegateやpropertyが使えたり、何かもー別言語だよ・・・ // generics generic ref class X { void f(T t) { t->g(); } }; // template template void X(T t)…

VC++ SP6

C++

Service pack 6 VC++のサービスパックが出てた。まだ、サポートするのね。しかし、会社で使っているのはVC++6.0SP3。SP4以上にするとDevPartnerが動かなくなるので上げられないのです。個人で買うには高いソフトだけど、仕事で使うソフトなのに予算が取れな…

C++の最適化

C++

Profile-Guided Optimization with Microsoft Visual C++ 2005 ふむー、色々inline化出来るみたい。

Boehm GCを弄ってみる

C++

yaneSDK4Cppを作るとしたら、C++にGCがないのでyaneSDK4D/Csとは結構違いがでそうという話が出てた。で、C++で使えるGCとしてBoehm GCがあったので、興味本位で弄ってみた。Boehm GCはこちらから入手。A garbage collector for C and C++ http://www.hpl.hp.…