wrongwrongな開発日記

情報系大学生が挑戦したことや日常を書いていきます

プログラミング

【VB】MsgBoxを処理を止めずに出す【.Net】

簡易まとめ Taskを使えば以下のコードで出来ます。処理を止めずにMsgBoxを出し、メッセージボックスのリザルトを受け取ることも出来ます(後述)。 Task.Run(Sub() MsgBox("Async") End Sub) やること WindowsフォームアプリではMsgBoxを用いてメッセージを…

【.Net】VB/C#のStructureはNothingにならない

タイトルの通りで、結論から言うとStructureは値型であるためNothingにはなりません。 困った状況 Classを返す関数ではNothingを返すことができますが、同じことをStructureでやってもNothingにならないため、IsNothingなどで比較を行うとコードが誤作動しま…

【日記】ぼくが直面しているクソコード

Friend, Publicを滅ぼせ PublicやFriendな変数は極力使っちゃいけないと思います。「簡単だから」「動けばいいから」と乱用されると、どこからデータを取っているのか、外から設定されるのか、どこにデータを渡しているのか、渡されているのか、段々と分から…

【DxLib】透過を有効にしたDrawGraph系関数での描画がおかしくなった時確認すること【.Net】

遭遇した問題への備忘録です。 対処法 DxLibDotNet(@VB)ではDX.TRUEとTrueは等価ではないので、DrawGraph系関数を含め使用時には確認が必要です。 状況 DxLibDotNetで、DrawGraph系関数で透過を有効にして画像を2枚描画しようとすると、2回目に描画=表に来る…

【VB】Taskを用いて非同期にファイルコピー【.Net】

作成中のプログラムでファイルのコピー待ちの時間が気になったので、非同期でやってみました。 IOがボトルネックなプログラムで並列処理やって意味有るのかって言うと無いです。強いて言うならパパっと結果が出て、重い処理は裏でやっておいて貰えるので嬉し…

【VB】VBでJavaでいうNull初期化【.Net】

備忘用に。 自分はJavaではNullで初期化しておいて後から値が入っているかチェックするようなやり方をよくしていました。 VBではNullは用意されていませんが、Nothingで初期化してIsNothingメソッドでチェックすることで同じように扱えます。

【VB】GetDetailsOfメソッドでは確実に動画/画像の幅や高さを取得できない【.Net】

wrongwrong163377.hatenablog.com この記事の続きみたいな記事です。 状況 調査結果では↓のように出ていました。 309:フレーム高 311:フレーム幅 これは動画のフレームの高さと幅を表していますが、この情報はファイルによっては入っていないことがあります…

【GitHub】言語に合わせ入力済みの.gitignoreをGitHub(ブラウザ上)から追加する【Git】

GitHubではブラウザ上からプログラミング言語ごとの記述が済んだ.gitignoreを追加することができます。 Git初心者的にはかなり便利な機能なんですが、ググっても引っかからなかったので記事にします。 やり方 いつもの画面でCreate new fileをクリックします…

【VB】GetDetailsOfメソッドのiColumn番号と内容の対応【.Net】

背景 環境 調査結果 調査結果から 調査方法 Shell32の参照設定 コード 参考にしたページ 追記 背景 最近VBでffmpegと連携したコードのメンテナンス(と言っていいのだろうか)をしています。その中で、「導入が面倒なのでできるだけffmpegを使わない形でコー…

【Android】OpenGL ESでシェーダーを書いて、何も問題無い(ように見える)のに動かないコードが出た時のこと

AndroidでOpenGL ESのプログラマブルシェーダーを書いた時、何も問題が無いように見えるのに動かないコードが出た時のことを2つ書きます。 症状は以下の2つ。 エラーも出ない、アプリが落ちることもない、ただ描画がされない 問題無いはずのシェーダーがコン…

【Android】LinearLayoutをJavaコードから弄る

初期化 LinearLayout mLinearLayout = new LinearLayout(this); 水平/垂直の選択 mLinearLayout.setOrientation(LinearLayout.VERTICAL); //mLinearLayout.setOrientation(LinearLayout.HORIZONTAL); 部品の追加(他のViewやLayoutでも大体共通) mLinearLayou…

AndroidのOpenGL ESで、カメラからの入力の各画素を処理する

最近AndroidのOpenGL ESを触っているので、少しだけ記事にしてみます。 多分タイトルは正確ではないんだろうなあ……。 OpenGL ESやGLSLに関しては全く詳しくないというか、自分のやりたいことはフラグメントシェーダを書くだけで実現できてしまったので、とり…

Androidで、JavaのActivityからc++のNativeActivityを呼び出す

Androidでは、c++のみで書かれるNativeActivityがあります。 github.com これは通常のActivityと同じように、別のActivityから遷移させることが可能です。 今回は、この遷移についてやった内容を記事にしました。 サンプルプロジェクト プロジェクト作成 Nat…

javaで、if文と%(剰余)のどちらが速いかを少しだけ比較

以前c++で実験してみたif文と%(剰余)の比較をjavaでもやってみました。 wrongwrong163377.hatenablog.com 実行環境 実行環境は以下の通りです。 OS Windows10 Pro CPU Core i7 6700 MEM DDR4 2133CL13 8GBx2 JDK 1.8.0_131 実行したコード プロジェクト全体…

たった1文字付け足すだけで、5000兆円が3688.35倍になる、その驚きの方法とは!?

最近流行りの「5000兆円欲しい!」という言葉。 でもちょっと待って下さい!簡単な方法で5000兆円は3688.35倍になります! どうせなら、お得に沢山のお金を要求してみませんか? その驚きの方法とは…… #include <iostream> using namespace std; int main() { unsigned</iostream>…

Androidでc++と連携してOpenCVを動かすサンプルプロジェクト解説

wrongwrong163377.hatenablog.com github.com こちらの記事で紹介したサンプルプロジェクトの解説記事です。 このプログラムは、以下のページを参考に作成しました。 OpenCV for Android入門 – カメラ編 « Rest Term プログラムの概要 ※このアプリではPermis…

AndroidでOpenCV + NDKでc++と連携してOpenCVを動かす

タイトル通り、AndroidにOpenCVを導入し、c++と連携してOpenCVを動かす所まで書きます。 実現する状況は以下の通りです。 AndroidのJava上からOpenCVを動かす NDKを介してAndroidのJava上からc++のOpenCVを動かす (GitHubを介したpush&pullのみでプロジェク…

c++で、if文と%(剰余)のどちらが速いかを少しだけ比較

ある一定数で折り返して用いたいような数があった場合、ぱっと思いつくのは、if文を用いて初期化するやり方と、%で剰余を取る方法でしょうか。 例えば以下のようなコードです。 //if文を用いたコード while(i < MAX) { if((j+=1) == 100) j = 0; i++; } //%…

CMakeでコンパイルオプションを複数指定する

set(CMAKE_C_FLAGS "-Wall -O3") #cの場合 set(CMAKE_CXX_FLAGS "-Wall -O3") #c++の場合というように、指定したいオプションをスペースで区切る。 cとc++で違いがあるようなので注意。 参考にしたページ cmake の使い方 - PukiWiki

C/C++/(Java)、見やすい関数の書き方

最近学んだ、CやC++、Javaといった言語での見やすい関数の書き方を纏めます。 まず、以下の2つのコードをご覧ください。 int func(int a, int b, int c){ processing... return result; } int func( int a, int b, int c ){ processing... return result; } …

逆FizzBuzz問題を解いてみた

逆FizzBuzz問題を解いてみました。 ただし、答えを知らない状態で解きたかったので、殆ど調べずに書いています。 もしかすると間違ってるかも……? github.com 逆FizzBuzz問題とは 逆FizzBuzz問題 (Inverse FizzBuzz) - 猫とC#について書くmatarilloの雑記 上…

UbuntuでClionをGitHubと連携させる方法

コマンドラインから以下を実行するだけ。 $ sudo apt-get install gitWindowsでAndroidStudioにGitを導入する時より簡単。

Androidで、C++とJavaの実行速度を少しだけ比較

AndroidでC++コードの実行速度とJavaコードの実行速度を少しだけ比較してみました。 この検証に使ったコードは以下に公開しています。 github.com 環境 開発環境 Android Studio2.3 NDKバージョン 14.1.38168.74 実行デバイス(Androidバージョン) SH-02H(6.0…

Androidアプリで、タイトルバーを消す方法

色々なサイトを見たが動かない場合によくぶち当たったので、自分の環境で動いた例のサイトを備忘用に保存。 やったこと values/styles.xml内で、parent="Theme.AppCompat.Light.DarkActionBar"となっている部分をparent="Theme.AppCompat.Light.NoActionBar"…

「生存率計算機」――懲りずにまたアプリを作ってみた

以前作成したScript Calculatorに続き、またアプリを作成してみました。 play.google.com 作成したアプリのタイトルは生存率計算機、厚生労働省のデータを基に生存率を計算します。 play.google.com github.com 作ったきっかけ カメラアプリを作ろうと四苦八…

Android6.0(APIレベル23以上)で、アプリに権限を与える

アプリに権限を与えようとした時に詰まったので、備忘用に。 やること APIレベル23から、Androidでアプリを動かす際に必要なパーミッションが、アプリインストール時ではなく、その機能を使う時に取得するようになったため、AndroidManifestへの記述だけでな…

AndroidアプリでWebViewで文字化けした時の対策

ローカルのHTMLを読み込んだら化けたので対策。 やり方 HTMLの記述に<meta charset="UTF-8">を追加し、文字コードを指定したら解決した。 化けた時は文字コードを確認したうえで指定すればOKかな。</meta>

Androidアプリで、簡単にファイルにデータを保持する

開発の備忘のため記事を残す。 やりたいこと EditTextなど、アプリ内でユーザーが行った変更をファイルに保持しておき、アプリを起動した際に、データを読み込む。 設定などを保持することにも応用できるかも? プリファレンスを使うなどの方法もあるそうだ…

初めて他人に使ってもらうためのプログラムを作って感じたこと

自分は、ScriptCalculatorというAndroidアプリを作りました。 play.google.com github.com このアプリは、自分が初めて他人に使ってもらうために作ったプログラムです。このアプリを作ったきっかけと、その中で感じたことについて書きます。 なぜアプリを作…