こんにちは、以下のコードで ac# dll を作成しています
システムを使用する; System.Collections.Generic の使用; System.Text を使用します。 System.Diagnostics を使用します。 System.IO の使用; System.Runtime.InteropServices を使用します。 名前空間のイメージ エクスポート { [ComVisible(真)] パブリック クラス ExportImage { [ComVisible(真)] public void exportPNG(String pDirectory,String svgFileName,String outputFileName) { 文字列引数= pDirectory+"res\\include\\highcharts-convert.js -infile "+pDirectory+"res\\graphs\\"+svgFileName+" -outfile "+pDirectory+"res\\graphs\\"+outputFileName +" -スケール 2.5 -幅 1088"; /*using (StreamWriter writer = new StreamWriter("c:\\debug.txt", true)) { writer.WriteLine("pDirectory=" +pDirectory); writer.WriteLine("引数="+引数); }*/ プロセス p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = false; p.StartInfo.FileName = pDirectory+"res\\bin\\phantomjs.exe"; p.StartInfo.Arguments = 引数; p.Start(); p.WaitForExit(); } } }
DLLを作成するために、VS2005で以下のように構成します
応用 アセンブリ名 -> imageexport デフォルトの名前空間 - > imageexport outputtype => クラスライブラリ 起動オブジェクト ->(未設定) アセンブリ情報: a) アセンブリ バージョン ->1 0 0 0 b) ファイル バージョン ->1 0 0 0 c) アセンブリ Com を表示する -> チェック済み 建てる 構成 -> アクティブ (デバッグ) プラットフォーム -> アクティブ (任意の CPU) 全般的 : a) 条件付きコンパイル シンボル -> 空白 b) デバッグ定数を定義 -> チェックあり c) トレース定数を定義 -> チェック済み d) プラットフォーム ターゲット -> 任意の CPU e) 安全でないコードを許可する -> チェックしない f) コードの最適化 -> チェックなし g) 警告レベル -> 4 h) スーパーレス警告 -> 空白 i) 警告エラーの処理 -> なし
この後、imageexport.dllを.net 2.0のregasmに登録します
レジストリを見ると、HKEY_CLASSES_ROOT の下に imageexport.ExportImage が見つかりました。
以下の vbscript では、オブジェクトを作成して関数を呼び出すために使用されます
暗いオブジェクト obj = CreateObject("imageexport.ExportImage") を設定します。 obj.exportPNG rvPAWZDirectoryPath&"\","SVGData_"&Session("export_time")&".svg","Export_" & export_time & ".png"
しかし、これにより、VBSCript の createObject 行で「UnknownException」という名前の例外が発生します。どこが問題なのか教えてください