asp.netアプリケーションからdll(vb6で書かれています)を呼び出しています。私は、DLLの次の関数を呼び出しています:最適なオーバーロードされたメソッドと一致する...無効な引数がいくつかあります[byref/byval]
C#で次のコードは、上記の関数を呼び出します:
public Boolean VerifyFinger(String name , String SampleModel, String REMOTE_ADDR)
{
try
{
Connect();
OracleCommand command = connection.CreateCommand();
string sql = "SELECT FINGER_DATA,DATA_LENGTH,SERIAL_NO FROM FP_BIOMETRIC_DATA WHERE CUST_NO =" + name.Trim();
command.CommandText = sql;
OracleDataReader reader = command.ExecuteReader();
bool fingerMatched = false;
FamServer.FamApp famApp = new FamServer.FamApp();
while (reader.Read())
{
Object[] values = new object[3];
int numColumns = reader.GetValues(values);
byte[] fingerData = values[0] as byte[];
string result = System.Text.Encoding.UTF8.GetString(fingerData);
int length_of_data = Convert.ToInt32(values[1]);
int serial_no = Convert.ToInt32(values[2]);
// FamIdentify_BYTE(ref string, ref object, ref int, ref string, ref string)
fingerMatched = famApp.FamIdentify_BYTE(name, fingerData, length_of_data, SampleModel, REMOTE_ADDR);
// if (fingerMatched)
// break;
}
famApp.Termination();
// famApp = null;
GC.Collect();
Close();
return fingerMatched;
}
catch (Exception e)
{
HttpContext.Current.Response.Write("<br>" + e.GetBaseException() + "<br>");
return false;
}
}
をしかし、私はIIS Expressでアプリケーションを実行すると、私はこのエラーを取得しています:
The best overloaded method match for 'FamServer._FamApp.FamIdentify_BYTE(ref string, ref object, ref int, ref string, ref string)'
has some invalid arguments ASPNET(1)
これは完全なエラーのリストです:
F:\ASP.NET Projects\ASPNET\App_Code\Global.asax.cs(180,37): error CS1502: The best overloaded method match for 'FamServer._FamApp.FamIdentify_BYTE(ref string, ref object, ref int, ref string, ref string)' has some invalid arguments
F:\ASP.NET Projects\ASPNET\App_Code\Global.asax.cs(180,61): error CS1620: Argument '1' must be passed with the 'ref' keyword
F:\ASP.NET Projects\ASPNET\App_Code\Global.asax.cs(180,67): error CS1503: Argument '2': cannot convert from 'byte[]' to 'ref object'
F:\ASP.NET Projects\ASPNET\App_Code\Global.asax.cs(180,79): error CS1620: Argument '3' must be passed with the 'ref' keyword
F:\ASP.NET Projects\ASPNET\App_Code\Global.asax.cs(180,95): error CS1620: Argument '4' must be passed with the 'ref' keyword
F:\ASP.NET Projects\ASPNET\App_Code\Global.asax.cs(180,108): error CS1620: Argument '5' must be passed with the 'ref' keyword
IISサーバーで上記のアプリケーションを実行すると、リダイレクトの時間が長すぎます。なぜこのことが起こっているのか理解できません。私を助けてください 。
引数1、3、4、5のためのエラーは明白である: 'REF' キーワードを使用します関数を呼び出すとき。現時点では、第2パラメータについてはわかりません – nabuchodonossor