.Net Framework 4.5アプリの 3.5への移植

key = string.Join(",", from n in item.Take(num).Select((string s, int i) => new
{
Content = s, Index = i }) where !ReplaseList.Contains(n.Index) select n.Content);
エラー1 'string.Join(string, string[])' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。

エラー2 引数 '2': 'System.Collections.Generic.IEnumerable' から 'string[]' に変換できません。

key = string.Join(",", (string[])(from n in item.Take(num).Select((string s, int i) => new
{
Content = s, Index = i }) where !ReplaseList.Contains(n.Index) select n.Content).ToArray());

string[]にキャストしても動作しないので、 ToArray() で変換してから処理する

ItemData itemData = Marshal.PtrToStructure<HedData>(ptr);

エラー1 非ジェネリック メソッド 'System.Runtime.InteropServices.Marshal.PtrToStructure(System.IntPtr, object)' は型引数と一緒には使用できません。

ItemData itemData = (ItemData)Marshal.PtrToStructure(ptr, typeof(HedData));

多分この形式が使えないだけ

public DLLPtr(IntPtr intPtr, string libName) {
  ptr = intPtr;
  name = libName;
}
エラー1 自動的に実装されたプロパティ 'dLLLoader.DLLPtr.Name' のバッキング フィールドは、コントロールが呼び出し元に返される前に完全に割り当てられている必要があります。コンストラクタ初期化子から既定のコンストラクタを呼び出すことを検討してください。

public DLLPtr(IntPtr intptr, string dllname)
   :  this()
{
  Ptr = intptr;
  Name = dllname;
}

明示的に呼び出す必要があり

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です