akıllı aygıt projesinde Msvree.dll dosyasında olması gereken bir işlevi Pinvoke çalışıyorum. Sen mscorlib.dll iç sınıf EE içerisinde Reflektör bu bulacaksınızMasaüstünde ve bir aygıtta farklı mscoree.dll giriş noktaları var mı?
[DllImport("mscoree.dll", EntryPoint = "#29")]
internal static extern int Object_GetHashCode(object obj);
şu şekildedir: ilişkili tanımıdır. Bu işlevin Object.GetHashCode() den çağrıldığını unutmayın.
Dolaylı olarak Object_GetHashCode'u çağırdığı bir akıllı cihaz test projesi var. Masaüstünde çalıştırdığımda her şey iyi çalışıyor. Bir öykünücü üzerinde çalıştırdığımda, aşağıdaki hatayı alıyorum:
System.MissingMethodException: PInvoke DLL 'mscoree.dll' içinde bir '# 29' giriş noktası bulamıyorum.
Bu neden oluyor? Tam olarak aynı mscorlib.dll emülatörde ve masaüstünde çalışmıyor mu? NETCFv35.ppc.armv4.cab içinde dağıtılan mscorlib.dll ile birlikte gelen Object.GetHashCode() uygulanmasına baktığımda o zaman aynı zamanda EE.Object_GetHashCode() çağırır göründüğü gibi görünüyor. Neden mscorlib.dll mscoree.dll içine çağrı yapabilirsiniz ve yapamıyorum?
DÜZENLEME:
aşağıdaki dosyaya Visual Studio proje noktalarında mscorlib referans,
C: \ Program Files \ Microsoft.NET \ SDK \ CompactFramework v3.5 \ WindowsCE \ \
: C: \ Program Files \ Microsoft.NET \ SDK \ CompactFramework \ v3.5 \ Debugger \ BCL \ mscorlib mscorlib.dll (210KB)
ancak varsayılan Reflektör aşağıdaki dosyanın içeriğini gösterir. dll (92) 0kB)Bu dosyalar System.Object.GetHashCode() için farklı uygulamalara sahiptir.
public virtual int GetHashCode()
{
return EE.Object_GetHashCode(this);
}
Aslında eski dosyadaki tüm yöntemler boş ve çok daha küçük boyutta görünmüyor eski dosya sadece olduğunu yöne doğru ipucu gibi görünüyor: İkinci görünüyor şöyle ederken eski basitçe boş olduğunu Bir yer tutucu, böylece VS bir şey referans olabilir?
Son olarak, emülatördeki dosyalarda mscorlib.dll dosyasını bulmaya çalıştım ancak başarısız oldu. Yükleyici günlük dosyası yükleme konumunun \ Windows olduğunu söylüyor ancak herhangi bir yerde mscorlib.dll yok. Bu şeyler nerede?
Genelde, CF'ye gelince cevaplar için uğraşıyorum, neden olmasın diye değil mi?
P.S. this sorusuna bir cevap bulmaya çalışıyorum.
Mscoree.dll dosyasının doğru sürümünü buluyor musunuz? –
Hayır, değilim. Dürüst olmak gerekirse, akıllı cihaz geliştirme ve CF için nispeten yeniyim ve yeniden dengelenebilirlik ve CF gelişiminin nasıl çalışması gerektiği gibi bazı çok temel şeyleri anlayamıyor olabilirler. Ayrıntılar için yukarıya bakınız (birkaç dakika içinde) . –