pythonnetはvb.netdllからメソッドを呼び出すことができません-TypeError

インテリジェントインフラストラクチャ

Pythonから.netVBコードへの接続を確立しています。VBでDLLを正常に作成し、CLRを使用してPythonにインポートできます。DLLのクラスがインポートされ、すべてのメソッドが表示されます。ただし、メソッドを呼び出すと、TypeErrorsで失敗します。引数のないメソッドでも失敗します。PS。他の(標準の)VBメソッドは正常に機能します(つまりfrom System import String a=String("Some string"))PS2。C#で記述されたコードもこのメソッドで正常に機能します

.dllに接続するPythonコード:

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-    
    import os,sys
    import site
    scriptPath=r"E:\Dropbox\SISTeMA\TRE development\TRE Add-In\visum\Visum_VB_interactions\From PTV\VisumNetAddIn\32Bit"
    assemblyPath=r"E:\Dropbox\SISTeMA\TRE development\TRE Add-In\visum\Visum_VB_interactions\Interact\bin\Debug\Interact.dll"
    site.addsitedir(scriptPath)
    import clr
    import System
    assemblyPath = os.path.join(scriptPath,assemblyPath)
    site.addsitedir(os.path.dirname(assemblyPath))
    assemblyFile,extension  = os.path.splitext(os.path.basename(assemblyPath))
    clr.AddReference(assemblyFile)   
    from Interact import Interact_Class

dllにコンパイルされたVB.netクラス:

Imports System
Public Class Interact_Class
    Public s As String

    Public Sub give_me()
        s = "got it"
    End Sub

    Public Sub give_me_sth(ByVal sth As String)
        s = sth
    End Sub

    Public Function I_will_give_you() As String
        Return "Here You go"
    End Function
End Class

Pythonの呼び出し:

from Interact import Interact_Class
print Interact_Class.give_me
Interact_Class.give_me()
from System import String
s=String("I will give You")
print Interact_Class.give_me_sth(s)
print Interact_Class.I_will_give_you()

結果のエラー:

Interact_Class.give_me()
TypeError: not enough arguments

print Interact_Class.give_me_sth(s)
TypeError: No method matches given arguments

print Interact_Class.I_will_give_you()
TypeError: not enough arguments

どうもありがとう!

rclのサイモン

Pythonコードでは、VBクラスを、C#用語では静的クラス、またはVB.Net用語ではモジュールであるかのように使用しています。

Pythonでインスタンスを作成してから、クラス定義ではなく、インスタンスのメソッドを呼び出す必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

TypeError: 'classname'オブジェクトを呼び出すことはできません(tkinter.Button.commandを介して呼び出されるメソッド内)

分類Dev

TypeError:クラスメソッドを呼び出すときの関数ではありません

分類Dev

GoogleAppsスクリプトは埋め込まれていると機能しません。TypeError:nullのメソッド「getActiveSheet」を呼び出すことができません

分類Dev

odoo [QWEB]はテンプレートからメソッドを呼び出すことができません

分類Dev

回答が得られる前にメソッドを再度呼び出すことはできませんか?

分類Dev

C#はvoidmainから保護されたメソッドを呼び出すことができません

分類Dev

TypeError: 'Collection'オブジェクトを呼び出すことはできません。'コレクション'で 'explain'メソッドを呼び出すつもりだった場合

分類Dev

IqueryableはIncludeメソッドを呼び出すことができません

分類Dev

Pythonnetを使用して.NETメソッドを呼び出すTypeError

分類Dev

「TypeError:nullのメソッド 'push'を呼び出すことができません」を解決する方法

分類Dev

分度器:TypeError:未定義のメソッド「クリック」を呼び出すことができません

分類Dev

静的メソッドからAsyncTaskを呼び出すことはできませんか?

分類Dev

クエリはコンソールログにアイテムを返しますが、htmlはUncaught TypeErrorを示しています:ページに表示しようとすると、undefinedのメソッド 'get'を呼び出すことができません

分類Dev

Javaで他のクラスからメソッドを呼び出すことはできません

分類Dev

TypeErrorを与えるsetInterval:未定義のメソッド 'apply'を呼び出すことができません

分類Dev

dataBindingを使用してxmlからメソッドViewModelを呼び出すことはできません

分類Dev

JavascriptでsetIntervalを使用して別のメソッドからメソッドを呼び出すと、キャッチされないTypeErrorは関数ではありません

分類Dev

TypeError:encrypt()の後にdecrypt()を呼び出すことはできません

分類Dev

エラーメッセージTypeErrorを受信しています:以前に動作していたシステムでnullのメソッド "getSheetByName"を呼び出すことはできません

分類Dev

TypeError:未定義のメソッド 'charCodeAt'を呼び出すことができません

分類Dev

Uncaught TypeError:undefineのメソッド 'checkDomStatus'を呼び出すことができません

分類Dev

Uncaught TypeError:nullのメソッド 'dropit'を呼び出すことができません

分類Dev

Angularjs:TypeError:nullのメソッド 'insertBefore'を呼び出すことができません

分類Dev

TypeError:未定義のメソッド 'replace'を呼び出すことができません

分類Dev

Node.js TypeError:未定義のメソッド 'write'を呼び出すことができません

分類Dev

TypeError:未定義のメソッド 'matches'を呼び出すことができません

分類Dev

Expressjs collection.update $ push result with TypeError:Undefinedのメソッド 'update'を呼び出すことができません

分類Dev

Uncaught TypeError:undefinedのメソッド 'getLocalName'を呼び出すことができません

分類Dev

Meteor ReactiveVar-TypeError:未定義のメソッド 'set'を呼び出すことができません

Related 関連記事

  1. 1

    TypeError: 'classname'オブジェクトを呼び出すことはできません(tkinter.Button.commandを介して呼び出されるメソッド内)

  2. 2

    TypeError:クラスメソッドを呼び出すときの関数ではありません

  3. 3

    GoogleAppsスクリプトは埋め込まれていると機能しません。TypeError:nullのメソッド「getActiveSheet」を呼び出すことができません

  4. 4

    odoo [QWEB]はテンプレートからメソッドを呼び出すことができません

  5. 5

    回答が得られる前にメソッドを再度呼び出すことはできませんか?

  6. 6

    C#はvoidmainから保護されたメソッドを呼び出すことができません

  7. 7

    TypeError: 'Collection'オブジェクトを呼び出すことはできません。'コレクション'で 'explain'メソッドを呼び出すつもりだった場合

  8. 8

    IqueryableはIncludeメソッドを呼び出すことができません

  9. 9

    Pythonnetを使用して.NETメソッドを呼び出すTypeError

  10. 10

    「TypeError:nullのメソッド 'push'を呼び出すことができません」を解決する方法

  11. 11

    分度器:TypeError:未定義のメソッド「クリック」を呼び出すことができません

  12. 12

    静的メソッドからAsyncTaskを呼び出すことはできませんか?

  13. 13

    クエリはコンソールログにアイテムを返しますが、htmlはUncaught TypeErrorを示しています:ページに表示しようとすると、undefinedのメソッド 'get'を呼び出すことができません

  14. 14

    Javaで他のクラスからメソッドを呼び出すことはできません

  15. 15

    TypeErrorを与えるsetInterval:未定義のメソッド 'apply'を呼び出すことができません

  16. 16

    dataBindingを使用してxmlからメソッドViewModelを呼び出すことはできません

  17. 17

    JavascriptでsetIntervalを使用して別のメソッドからメソッドを呼び出すと、キャッチされないTypeErrorは関数ではありません

  18. 18

    TypeError:encrypt()の後にdecrypt()を呼び出すことはできません

  19. 19

    エラーメッセージTypeErrorを受信しています:以前に動作していたシステムでnullのメソッド "getSheetByName"を呼び出すことはできません

  20. 20

    TypeError:未定義のメソッド 'charCodeAt'を呼び出すことができません

  21. 21

    Uncaught TypeError:undefineのメソッド 'checkDomStatus'を呼び出すことができません

  22. 22

    Uncaught TypeError:nullのメソッド 'dropit'を呼び出すことができません

  23. 23

    Angularjs:TypeError:nullのメソッド 'insertBefore'を呼び出すことができません

  24. 24

    TypeError:未定義のメソッド 'replace'を呼び出すことができません

  25. 25

    Node.js TypeError:未定義のメソッド 'write'を呼び出すことができません

  26. 26

    TypeError:未定義のメソッド 'matches'を呼び出すことができません

  27. 27

    Expressjs collection.update $ push result with TypeError:Undefinedのメソッド 'update'を呼び出すことができません

  28. 28

    Uncaught TypeError:undefinedのメソッド 'getLocalName'を呼び出すことができません

  29. 29

    Meteor ReactiveVar-TypeError:未定義のメソッド 'set'を呼び出すことができません

ホットタグ

アーカイブ