AMcoder - javascript, python, java, html, php, sql

ինչպես զանգահարել c# dll-ը vbscript-ից

Բարև, ես ստեղծում եմ c# dll ստորև նշված կոդով

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;

namespace imageexport
{
    [ComVisible(true)]
    public class ExportImage
    {
        [ComVisible(true)]
        public void exportPNG(String pDirectory,String svgFileName,String outputFileName) {
            String arguments= pDirectory+"res\\include\\highcharts-convert.js -infile "+pDirectory+"res\\graphs\\"+svgFileName+" -outfile "+pDirectory+"res\\graphs\\"+outputFileName +" -scale 2.5 -width 1088";
            /*using (StreamWriter writer = new StreamWriter("c:\\debug.txt", true))
            {
                writer.WriteLine("pDirectory=" +pDirectory);
                writer.WriteLine("arguments="+arguments);
            }*/
            Process p = new Process();
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = false;
            p.StartInfo.FileName = pDirectory+"res\\bin\\phantomjs.exe";
            p.StartInfo.Arguments = arguments;
            p.Start();
            p.WaitForExit();
        }
    }
}

dll ստեղծելու համար ես կարգավորում եմ ստորև VS2005
-ում

Application
     Assembly Name -> imageexport
      Default Namespace - > imageexport
     outputtype => Classlibrary
     startup object ->(Not Set)
   Assembly Information :
         a) Assembly Version ->1 0 0 0
         b)File Version ->1 0 0 0
         c) Make Assembly Com visible ->checked
 Build 
  Configuration -> Active (Debug)
  Platform ->Active (Any CPU)
  General :
    a)conditional Compilation Symbols -> blank
     b) Define Debug Constant ->checked
    c) Define Trace Constant -> checked
    d) platform Target -> Any CPU
    e) allow unsafe code -> not checked
    f) optimize code -> not checked
    g) warning lavel -> 4
    h) Supperess warning -> blank 
    i) Treat Warnign errors -> None

Հիմա սրանից հետո ես գրանցում եմ imageexport.dll-ը .net 2.0-ի ռեգազմով

Այժմ, երբ ես նայում եմ ռեեստրը, ապա HKEY_CLASSES_ROOT-ում ես գտա imageexport.ExportImage:

Այժմ vbscript ստորև նշված կոդը օգտագործվում է օբյեկտ ստեղծելու և ֆունկցիան կանչելու համար

Dim obj                        
Set obj = CreateObject("imageexport.ExportImage")
obj.exportPNG rvPAWZDirectoryPath&"\","SVGData_"&Session("export_time")&".svg","Export_" & export_time & ".png"

Բայց սա բացառություն է տալիս, որը կոչվում է «UnknownException» VBSCript-ում createObject տողում: Խնդրում եմ, ասեք, թե որտեղ է խնդիրը


  • Ի՞նչ է պատահում, եթե դուք արտահանեք PNG-ը C# հաճախորդից: Պարզապես զարմացեք, արդյոք դա նետում է: 01.07.2013
  • Ոչ, երբ ես օգտագործում եմ այս dll-ը c# կոնսոլի հավելվածում, այն լավ է աշխատում: 01.07.2013
  • Ողջույն, հիմա, երբ ես ապամեկնաբանում եմ ֆայլի գրման կոդը, և այն գործարկում եմ համակարգի վերագործարկումից հետո, ապա debug.txt-ը լավ է ստեղծում: Այժմ միակ խնդիրն այն է, որ phantomjs.exe-ը չի գործարկվում, մինչդեռ այն գործարկվում է, երբ ես զանգում եմ սա վահանակի հավելվածից: 02.07.2013

Պատասխանները:


1

Կարծում եմ, որ դուք պետք է գրանցեք ձեր Dll-ը որպես.

 C:\Windows\Microsoft.NET\Framework64\v4.0.30319>regasm yourDllPath /codebase

Այժմ դուք կարող եք ստեղծել ձեր Dll-ի օբյեկտ:

14.08.2015
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..