Yönetilmeyen C++ kodunu bir C# API'ye saran bir üçüncü taraf kitaplığı verildi, işlevlerden biri yerel genel ad alanından bir yapı gibi görünen bir parametreye sahip olur. C# içindeki bu yapının bir örneği? nedeniyle koruma seviyesine biz C# bunun bir örneğini bildirmek çalıştığınızdaC++ 'dan bir yapıyla C++ çağrısı C#
struct GroupInfo
{
int cMembers; // Current # of members in the group.
char saMembers[cMaxMembers][cMaxLoginID + 1]; // Members themselves.
};
derleyici küresel diyor :: GROUPINFO kullanılamaz:
Bu
C++ Struct olduğunu.C++ imza
int QueryGroup(char* sGroupName,
GroupInfo& gi);
C# imza Ben sınıf denilen grup bilgisi var
VMIManaged.QueryGroup(sbyte*, GroupInfo*)
ben bu kodu kullanarak i almak uygulamaya çalıştığınızda
class GroupInfo
{
public int cMembers;
public sbyte[,] saMembers;
}
ve olamaz hatayı dönüştür
GroupInfo gi = new GroupInfo();
unsafe
{
sbyte* grpName;
fixed (byte* p = groupNameBytes)
{
grpName = (sbyte*)p;
}
return vmi.QueryGroup(grpName, gi); // cannot convert from class GroupInfo to GroupInfo*
}
o konu tam olarak ne olduğunu anlamak zordur . Başarısız olan kod satırını sağlayabilir misiniz? – mageos
Yorum için teşekkürler mageos Ben başarısız olan satır ile yazıyı değiştirdim. – user2379915
vmi.QueryGroup (grpName, &gi);? – mageos