ねむみ高まる

文章力がないので、文章を書く練習をしています。

プログラミング

LNK2019 未解決の外部シンボル _main が関数~~というビルドエラー

Visual Studio C++でC++のプロジェクトをビルドして、LNK2019 未解決の外部シンボル _main が関数~~というエラーが出る場合はエントリポイントがWinMain()ではなくmain()になっています。 プロジェクトのプロパティ → リンク → システム → サブシステムで…

【C++】delete後のダングリングポインタにアクセスしてみた

メモリ解放後、無効なアドレスを指しているポインタのことを「ダングリングポインタ」と一般的には呼ぶらしいです。 ダングリングポインタにアクセスするとどうなるの??という感じだったので調べてみました。 環境はMicrosoft Visual Studio Community 201…

【C++】no man's land(0xfdfdfdfd)等を変更したときの挙動を見てみた

newの挙動について最近勉強していました。 newしたとき、自分が割り当てた変数以外の様々な値が変更されており???となっていたのですが、 teratailで質問してみたところ、複数の方々より、newの挙動についてご教授頂きました(多謝)。 C++ - newしたときに…

バッファオーバーフローを発生させて、その様子をVisual Studioのメモリウィンドウで見てみた

バッファオーバーフローとは??という感じだったので理解を深めるために、スタックベースのバッファオーバーフローを実際に発生させてみて、その様子をVisual Studioのメモリウィンドウで見てみます。 バッファオーバーフローを発生させるC++のソースコード…

OpenGL/GLUT入門が大体終わりました

HSPやUnityからゲームプログラミングに入った結果、射影変換??みたいな感じになっており色々まずいと感じていたため、最近はOpenGL(GLUT)の勉強をしていました。 下記の2つサイトの入門講座をわからない部分は飛ばしながらも、一通り終わらせました。どち…

【OpenGL/GLUT】raw画像をテクスチャマッピングすると上下反転した

テクスチャマッピングの知識があまりない状態でGLUTでテクスチャマッピングをやってみたら、何故か画像が上下反転しました。 上下反転するソースコード #include <stdio.h> #include <windows.h> #include <GL/gl.h> #include <GL/glut.h> namespace { const int TEX_SIZE = 256; const int WINDOW_SI</gl/glut.h></gl/gl.h></windows.h></stdio.h>…

【C++】クラスのメンバ変数のコンストラクタは宣言順に呼ばれ、デストラクタはその逆順に呼ばれる

クラスのメンバ変数の知識があやふやだったので、下のようなソースコードを書いて実験してみました。 aaa.cpp #include <iostream> using namespace std; class A { public: A() { cout << "A::A()" << endl; } ~A() { cout << "A::~A()" << endl; } }; class B { publ</iostream>…

Visual StudioでDLLを生成して別のプロジェクトから使ってみた

いろんなサイトを見てみてましたが、MSDNの下記サイトの解説が一番シンプルで分かりやすく感じました。 チュートリアル: ダイナミック リンク ライブラリの作成と使用 (C++) サイトの解説通り行うことで、1つのソリューションにDLLのプロジェクトとDLLを使う…

boost::serializationを使ってみた

C++でシリアライズを使ったコードを書いたことがなかったので、勉強のためにboost::serializationを使ってみました。 環境構築 Macを使っており、boostはbrew で brew install boost で入れることができました(入れたの自体は大分前です)。 ~/.bash_profile …

C++でLuaを使ってみた

luaはMacでbrewがあればbrew install luaで入ります。環境構築が非常に楽で良いですね。 注意点としてはCだと<lua.h>、C++だと<lua.hpp>をインクルードしないとビルドできません。 main.cpp #include <lua.hpp> #include <lauxlib.h> #include <lualib.h> int main() { lua_State *lua = luaL_newstate(); l</lualib.h></lauxlib.h></lua.hpp></lua.hpp></lua.h>…

ld: library not found for -lhogeと出て静的ライブラリがリンクできない

静的ライブラリについて勉強するぞ!となり、グーグル先生で調べて出てきた以下のページを見ながらMacで静的ライブラリを作ってリンクして実行ファイルを作るまでを試してみました。 qiita.com しかし、ライブラリをリンクする段階で詰まりました。 出たエラ…

jsoncppを使ってみた

C++でjsonを扱うコードをろくに書いたことがなくて知識的に不安だったので、ぐーぐる先生で調べて出てきたjsoncppというossを使ってjsonのファイルをパースして表示してみました。 github.com 内容 test.json {"name" : "nemumitakamaru","email" : "nemumit…