Announcement

Collapse
No announcement yet.

Umsetzung DCOM VB-Script in VS08

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Umsetzung DCOM VB-Script in VS08

    Hallo zusammen,

    Ich habe hier ein Beispiel aus VB-Script, welches ich in mein VS übernehmen möchte, doch leider ohne Erfolg.
    Hier einmal das VB-Script-Beispiel:
    Code:
    varProjectID = 0
    strParamStr = "555"
    varParamInt = 0
    
    Set voice = CreateObject ( "VoiceService.ExternCom" , "localhost" )
    
    varStartLine = voice.StartActiveProject (varProjectID , Nothing , strParamStr , varParamInt )
    
    set voice = nothing
    Und das habe ich draus gemacht:
    Code:
    Dim voice As Object
    Dim retVal As Long
    
    voice = CreateObject("VoiceService.ExternCOM", "localhost")
    retVal = voice.StartActiveProject(0, Nothing, "555", 0)
    
    voice = Nothing
    Im StartActiveProject knallt es mit: "Typkonflikt. (Ausnahme von HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))"
    Hat da jemand eine Idee zur Optimierung meiner Umsetzung.

    Niels
    Zuletzt editiert von niels$; 12.03.2010, 16:49. Reason: Copy&Paste-Fehler (s. Beiträge)

  • #2
    Naja der Parameter 555 ist oben mit jeweils einem Leerzeichen vorne und hinten....
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Naja der Parameter 555 ist oben mit jeweils einem Leerzeichen vorne und hinten....
      Upps, das ist aber ein Fehler vom Copy&Paste, da sich hier beim Kopieren zig Leerzeichen eingeschlichen haben und die habe ich vergessen zu löschen.

      Niels

      Comment


      • #4
        Was hat denn varStartLine in VB Script für einen Typ?
        Kann es sein das die Rückgabe kein Long ist, sondern etwas anderes?

        Ich glaube ich hatte ein ähnliches Problem mal mit VB6 -> VS. Irgendwas schwirrt mir im Kopf herum das long in VB6 nicht long in VS entsprach, sondern Int32. Ist das evtl. beim VB Script auch so?

        Gruß Womble

        Comment


        • #5
          Originally posted by Womble View Post
          Ich glaube ich hatte ein ähnliches Problem mal mit VB6 -> VS. Irgendwas schwirrt mir im Kopf herum das long in VB6 nicht long in VS entsprach, sondern Int32. Ist das evtl. beim VB Script auch so?

          Gruß Womble
          Ja, aber eine Rückgabe in einen größten Typ sollte eigentlich funktionieren. Probleme machen meist nur die Übergaben an ein Routine.

          Eventuell sollten die Übergaben im Script weiterhin als Variablen angegeben werden, weil sie von der aufgerufenen Routine als ByRef erwartet werden (nur Vermutung).

          Comment


          • #6
            Ich hab es

            So gehts:
            Code:
                    Dim voice As Object = Nothing
                    Dim nPtr As Object = Nothing
                    Dim retLine As Long  ' oder string?
            
                    voice = CreateObject("VoiceService.externCom", "127.0.0.1")
                    nPtr = CreateObject("VoiceService.ExternCallback", "127.0.0.1")
            
                    retLine = voice.StartActiveProject(0, nPtr, "StringParamter", 123)
            Etwas anders, aber das hat mein Kollege aus einem PHP-Beispiel übersetzt und es funktioniert.

            Niels

            Comment

            Working...
            X