Jeg har brug for at kalde en COM dll fra .net. Jeg kan sætte de fleste parametre - mest double, og køre de fleste metoder, men jeg ike finde ud af at sætte den siste parameter, da denne skal være Variant.
Metoden DM.set_iPassword forventer et Object og i følge programmøren og en DLL viewer skal det være af typen Variant hvordan koverterer jeg string til variant.
Jeg kan fremsende DLL mv. hvis set er nødvendig.
Et simpel eksempel ses nedenfor:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DesMod; using System.Runtime.InteropServices;
namespace ConsoleApplication1 { class Program { static private double fromCToF(double C) { return (1.8 * C + 32); }
Jeg er lidt usikker på, hvad den er lave i, men installeren og designet leder tankerne hen på VB6 eller noget C++ fra samme tidsalder. Af installeren fremgår der "Setup Bootstrap for Visual Basic Toolkit". Filen og programmet er nyt - jeg troede slet ikke man kunne få fat i sådan noget længere,
Jeg har også prøvet: String pw = "1234"; IntPtr pVariant =Marshal.StringToBSTR(pw); object objRet = Marshal.GetObjectForNativeVariant(pVariant); DM.set_iPassword(objRet); Så giver den:
Managed Debugging Assistant 'InvalidVariant' has detected a problem in 'C:\Users\RTO\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.vshost.exe'.
Additional information: Der blev registreret en ugyldig VARIANT under en samtale fra en ikke-administreret VARIANT til et administreret objekt. Overførsel af ugyldige VARIANT'er til CLR kan medføre uventede undtagelser, beskadigelse eller tab af data.
Tak for hjælpen, jeg har fundet min gamle VBS6.0 CD frem og så laver jeg en wrapper dll som kan trække koderodet et andet sted fra. En smule ufleksibelt men det heldigvis ikke alle som stadig kun udvikler til VB6.0
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.