中加載類型'ADODB._Recordset_Deprecated'。看起來,即時通訊正面臨着問題,它開始給我帶來一些頭痛,因爲我正在尋找和尋找仍然不是運氣。無法從程序集'ADODB,Version = 7.0.3300.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'
我要執行從C#DLL中的方法,這個DLL是像4年前的VB 6.0創建的,它是在COM註冊。它採用ADOB.Recordset爲返回,我必須執行(沒有源代碼avaialble:S)方法的類型
我一直在尋找如何加載和執行DLL。
我第一次加載它時出現了問題,我無法加載它Server.CreateObject, Assembly.Load, Assembly.LoadFrom
因此我試圖從COM和Visual Studio的引用中添加它導入到名爲Interops的Bin文件夾中。 ]
當Y嘗試使用它,它給了我編譯錯誤,它說:
Error 1 No overload for method 'SelArregloCobertura' takes '6' arguments
的參數是正確的,它的類型和一切之內。很肯定的這
所以我試圖用思考來執行它這是代碼:
ADODB.Recordset rs = new ADODB.Recordset();
string strRamo = "70";
string strSubramo = "01";
string strOficina = "070";
int iClaveSolicitud = 7118;
string strModulo = "0";
int iInciso = 1;
Poliza.clsdNTCoberturaClass oClass = new Poliza.clsdNTCoberturaClass();
MethodInfo miSelArregloCobertura = oClass.GetType().GetMethod("SelArregloCobertura");
miSelArregloCobertura.Invoke(oClass, new object[] { "70", "01", "070", 7118, "0", 1 });
//oClass.SelArregloCobertura(strRamo, strSubramo, strOficina, iClaveSolicitud, strModulo, iInciso);
(我評論了,讓我的編譯錯誤的行) 和錯誤是不同的,不該編譯錯誤它給我的錯誤的問題
Could not load type 'ADODB._Recordset_Deprecated' from assembly 'ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
當我去好像這個DLL的元數據。
[Guid("757AC98D-3800-406F-BA47-AEDAF2EBBCDB")]
[TypeLibType(2)]
[ClassInterface(0)]
public class clsdNTCoberturaClass : _clsdNTCobertura, clsdNTCobertura
{
public clsdNTCoberturaClass();
[DispId(1610809344)]
public virtual ADODB._Recordset_Deprecated SelArregloARenovar(string dFecha1, string dFecha2, string strNumOfic, short strCveAge, string strRamo);
[DispId(1610809347)]
public virtual ADODB._Recordset_Deprecated SelArregloCobertura(string strRamo, string strSubRamo, string strNumOfic, int lCveSol, string strModulSol, int lCveInc);
[DispId(1610809348)]
public virtual ADODB._Recordset_Deprecated SelArregloCobEst(string strRamo, string strSubRamo, short intCveInc, short intAnio, int lNumRec, string strOficRecl);
[DispId(1610809349)]
public virtual ADODB._Recordset_Deprecated SelArregloCobEstim(string strRamo, string strSubRamo, short intCveInc, short intAnio, int lNumRec, string strOficRecl);
[DispId(1610809346)]
public virtual ADODB._Recordset_Deprecated SelArregloNvaCobertura(string strRamo, string strSubRamo, string strNumOfic, int lCveSol, string strModulSol, int lCveInc, short intAnio, string strOficRecl, string intnumrec);
[DispId(1610809345)]
public virtual ADODB._Recordset_Deprecated SelCobertura(string strRamo, string strSubRamo, string strCveCober);
[DispId(1610809350)]
public virtual ADODB._Recordset_Deprecated SelEstCobertura(string strRamo, string strSubRamo, short intAnio, string strOficRecl, int lNumRec, short intCveInc, string strCveCober);
}
所以我覺得有一個與輸入步驟出了問題,
人有如何使這個工作,或者還有另一種形式加載從誰註冊的DLL執行方法的想法在COM?
任何幫助將是非常apreciated。
在此先感謝。
感謝您的回答,我會檢查它作爲接受,但因爲它似乎沒有解決這個問題,我不得不重新做DLL到C#代碼,使這個工程。謝謝你的幫助。 –
微軟剛剛發佈了一個解決方案,希望這個解決方案對開發人員和他們的客戶影響最小。 –
謝謝我看到帖子,以及他們至少將其固定在Windows 8中,讓我們等待如果我用VB 6.0 xD獲得另一個項目感謝您的答覆!在微軟發佈後8小時,我看到您的帖子只是忘了感謝你! xD謝謝! –