30
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Visual Basic 6.0の100%互換性 twinBASICの紹介

Last updated at Posted at 2021-12-22

はじめに

これは、Visual Basic Advent Calendar 2021の23日目の記事となります。

以前にRAD Basicを紹介しましたが、twinBasicもVB6.0の互換性+拡張を目指して開発中です。

【2024/09/30更新】
twinBASICのロードマップです。暫定Ver 1.0 リリース:2024年10月1日2024年12月31日

2024/01/13に VBForums に twinBASIC 専用フォーラムが出来ました。

twinBASICで作成したアプリケーションです。 64bit Windows上で32bitのアプリケーションを使用した場合、ハードウェア セットアップ機能の大部分が WOW64 では禁止されているため SetupDiCallClassInstaller API は失敗します。しかし、twinBASIC の WinDevLib では、それを回避することが出来る。

【2022/12/04追記】
twinBASICの応用としてVBScriptをデバッグする方法を見つけました。

【2022/08/07追記】
2022/05/12に説明動画になります。IDEはtwinBasic専用のものが出来上がってます。WebView2を使用している。

【2021/12/25追記】
twinBASICが正式名称のため、TwinBASICからtwinBASICに記事を修正しました。
twinBASICのロードマップです。基本的なフォームGUIのリリース予定日:2022年1月10日

twinBASICとは

既存のすべてのVB6.0およびVBAコードと完全に互換性があることを目的とした最新のBASICコンパイラです。
VB6.0と違いインタプリタではありません。GUI画面については現在作成中となっています。
https://www.vbforums.com/showthread.php?890181-TwinBasic/page13

ビルドして出来たEXEファイルは、最適化されていないネイティブコードです。出力コードは最適化されていませんが、ネイティブマシンコードであるため、通常はVBA(またはVB6のpコードコンパイル)よりもはるかに高速です。
※ランタイムまたは再配布可能なコンポーネントを必要としません。

LLVMをtwinBASICに統合して、コード生成に提供される驚くべき利点のいくつかを取得できるようにするための作業がすでに進行中です。

名前の由来

Youtubeのコメントの日本語訳

私たちはtwinBASICを、私たちのお気に入りの古典的なBASIC言語であるVB6の双子の兄弟と考えるのが好きです。もちろん一卵性双生児ではありません...しかし、おそらく数分(または数十年?)後に生まれ、兄弟の過ちから学んだ賢い双子です:)

GUI画面

GUI画面については現在作成中となっています。
https://github.com/WaynePhillipsEA/twinbasic/discussions/451

YouTubeによる紹介動画

言語拡張機能

VB6.0だとこんなことも出来なかったんだと思う部分が改良されています。
New compiler features
https://twinbasic.com/preview.html

インライン変数の初期化

image.png

戻りステートメント

image.png

複数行コメントのサポート

VB.NETにもなかった複数行コメントが、Cスタイルで可能になっています。

image.png

その他

DeclareWide構文、オーバーロード、パラメータ化されたコンストラクタ、ジェネリックなども追加されています。

ライセンス

32ビットのプロジェクトは、無料で利用可能
64ビットのプロジェクトは、起動時に5秒間のtwinBASICのスプラッシュ画面の表示される、ライセンスを購入すればスプラッシュ画面は表示されなくなる。

twinBASICによる開発

開発IDEとして、VSCodeを使用します。

インストールからビルドまでの動画があります。

下記は動画ではなく、Getting Started - Sample 1 - HelloWorld! の記事形式で書かれています。

インストール

ここからは動画を見ながら、自分なりに構築したのを書いてみました。

拡張機能で「twinBASIC」を検索してインストールします。
image.png
image.png

新規プロジェクト

F1キーを押して、新規プロジェクトを選択します。
image.png
今回はサンプルのHelloWorldを選択しました。
image.png
プロジェクトの保存先として「C:¥WorkSpace¥TwinBasic」を選択しました。
image.png
image.png

ワークスペースの信頼

image.png
Trustボタンをクリックして信頼させます。
image.png

HelloWorld

ソースコードが見れました。
image.png

VSCodeの表示言語変更

VSCodeの表示言語が英語の状態になっていたので、「表示」 メニューの中の 「コマンドパレット」 メニューをクリックしてコマンドパレットを表示、コマンドパレットで display と入力して「表示言語を構成する(Configure Display Language)」と表示されるのでクリックします。
表示言語の選択画面でjaをクリックします。

デバッグ

ブレークポイントを付けます。
image.png
Public Sub Mainの上にある「▶ run ModHelloWorld.Main」をクリックします。
デバッグ実行で止まります。
image.png
ステップアウトすると、Hello world!のメッセージボックスが表示されます。
image.png

ビルド

ビルドのアイコンをクリックすると、EXEファイルが作成されます。
image.png
BuildフォルダにEXEファイルが作成されています。
image.png
EXEファイルをダブルクリックすると、Hello world!のメッセージボックスが表示されます。
image.png

ソースコードのインポートとエクスポート

【2023/06/20追記】
ソースコードが含まれているプロジェクトファイル('*.twinproj')はバイナリ形式になっているのですが、これをインポートとエクスポートできないかなと思って調べたら、公式にありました。

最後に

これは期待できますね、GUI環境が完成したらVB6.0のプロジェクトの読み込みも出来るようにする予定とのこと。
同じVB6.0の互換アプリケーションを作成している、RAD Basicを開発している方と協力して欲しいな。

何かあれば、githubに参加することも出来ます。

30
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?