Visual Basic 2010 でDLLを作成し,IronPython 2.6 で使用したいのですがエラーが出て動きません。
何かアドバイスがありましたらお願いします。
・DLLの作成
Visual Basic の新規プロジェクトを”クラスライブラリ”として作成
(.NET Framework 2.0)
Public Class aaa
Public Sub bbb()
MsgBox("AAA")
End Sub
End Class
・IronPython での呼び出し側
import os
import clr
import sys
clr.AddReferenceByPartialName("Microsoft.VisualBasic")
from Microsoft.VisualBasic import Interaction
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
clr.AddReferenceToFile("test_VB.dll")
import test_VB
aa = test_VB.aaa
aa.bbb()
実行すると,
TypeError: bbb() takes exactly 1 argument (0 given)
となってしまいます。
bbb()定義時には何も引数を指定していないのですが,
何を渡せばいいでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
REM IronPython初めて使う
REM VBのソースをコンパイルする際使用したIDEはMonoDevelop
REM まぁVisual StudioとSharpDevelop/MonoDevelopはMS OfficeとLibreOfficeみたいなもんだと思ってくれれば(以前誰かにわからん言われたorz)
REM なお、普通に作ると、プロジェクト名がデフォルトネームスペースに設定されたりするので消すのを忘れないようにしました。
REM ビルドは.NET 4.0向け
Option Explicit On
Option Strict On
Option Compare Binary
Option Infer Off
Imports System
Public Class Test2
Public Sub Test()
System.Console.WriteLine("Hello World")
End Sub
End Class
===================
作ったアセンブリ(Test2.dll)をD:\に配置。
で、使用したのはIronPython 2.7.2.1のzip版に含まれるインタープリタ(ipy.exe)。
で、正解は、コンストラクタでクラス名を引数に与えてインスタンスを生成した上で、
そのインスタンスから引数なしで呼び出すか(こっちの方が俺好み)、
import os
import clr
import sys
sys.path.append("D:\\")
clr.AddReferenceToFile("Test2.dll")
import Test2
a = Test2.__new__(Test2)
a.Test()
===================
あるいは、型名から呼び出して第一引数にオブジェクトを渡すか。
import os
import clr
import sys
sys.path.append("D:\\")
clr.AddReferenceToFile("Test2.dll")
import Test2
a = Test2.__new__(Test2)
Test2.Test(a)
一応そのへんのことは
http://readthedocs.org/docs/ironpython-test/en/l …
http://readthedocs.org/docs/ironpython-test/en/l …
Class Types
User-defined methods
あたりに書いてあると思う
実際にやってみたら、ともにHello Worldが表示された。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0(SP6)にて開発を行なって...
-
指定された引数が有効範囲にな...
-
res://ieframe.dll/について
-
Excel2007のVBAで、セル範囲を...
-
VB6 - DLLの動的リンクの方法に...
-
visual studioの不要なDll削除方法
-
ファイルをvbaで圧縮したいので...
-
ASP.NETのDLL入れ替えについて
-
C# ネット上に公開されているFF...
-
M365にアップデートしてからコ...
-
shell32.dll のアイコンを使っ...
-
about:blankの削除したいのです...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<math.h>があるのにsqrtが・...
-
<unistd.h>をVisualStudioでつ...
-
C言語をコンパイルするとコンピ...
-
unsigned long long 型のフォー...
-
VBAを何回も作り直して、容量が...
-
適切な変換関数が存在しない???
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
M365にアップデートしてからコ...
-
C# DLL エントリ ポイントが...
-
visual studioの不要なDll削除方法
-
res://ieframe.dll/について
-
ASP.NETのDLL入れ替えについて
-
C++製DLLにてVB.NET関数を引数...
-
VB6.0(SP6)にて開発を行なって...
-
ファイルをvbaで圧縮したいので...
-
WIN10で常にフォームを手前に
-
VB.NET xdoc2txtをつかってPDF...
-
VC++6.0 でのライブラリ参照方法
-
VB2003で レジストリを格納する
-
user32.dllがないためアプリが...
-
エクセル マクロで指定フォルダ...
-
vb6で作成した画面が処理に時間...
-
VBAエディタのコード画面で、カ...
-
[VBA]64b版-行数表示.dllの登録...
-
指定された引数が有効範囲にな...
-
Java hs_err_pid0000.log解析
-
メイクファイルからdllを生成す...
おすすめ情報