C# projesinde C++ unmanaged dll kullanmaya çalışıyorum ve giriş noktasının bulunamadığını belirten bir işlevi çağırmaya çalışırken bir hata alıyorum. Giriş Noktası Bulunamadı Özel Durum
5 4 00001020 [email protected]@[email protected]
Ben
[DllImport("aonAPI.dll", EntryPoint="?aaeonAPIOpen")]
ve
[DllImport("aonAPI.dll", EntryPoint="_aaeonAPIOpen")]
ve hiçbir şans için dll ithalat değiştirdi: Burada
public class Program
{
static void Main(string[] args)
{
IntPtr testIntPtr = aaeonAPIOpen(0);
Console.WriteLine(testIntPtr.ToString());
}
[DllImport("aonAPI.dll")]
public static extern unsafe IntPtr aaeonAPIOpen(uint reserved);
}
fonksiyonu için dumpbin olduğunu.
+1, bunu yapabileceğini farketmediniz. Bu yaklaşım ne kadar güvenli? Mandallı ad, derlemeden inşaata mı yoksa aynı kodun yapıları boyunca tutarlı mı değişiyor? – JaredPar
@Jared: Mandallama, yalnızca C++ işlevinin beyanına dayanmaktadır. Undname.exe neden bu yüzden çalışabilir. Deklarasyon değişmediği sürece kararlı. Bu, bir extern "C" bildirgesinden * daha güvenli * yapar. –