usakdsteen

ゆうさくですてぃーん

2024年06月16日(Sun)の独り言

の呟きは 19

 < の独り言 | の独り言 | の独り言 > 
  •  #

    眠い

  •  #

    もしかして、このVARIANTでいいのか?

    https://learn.microsoft.com/ja-jp/dotnet/standard/native-interop/customize-struct-marshalling#marshal-systemobject

    https://learn.microsoft.com/ja-jp/windows/win32/api/oaidl/ns-oaidl-variant

    •  #

      (omitted)

    •  #

      (omitted)

    •  #

      これか?

      https://learn.microsoft.com/ja-jp/dotnet/framework/interop/default-marshalling-for-objects#marshalling-options

      •  #

        なるほどね

      •  (UPD ) #

        うーん?IUnknownにしてるけど
        objectにnullを受け付けない・・・?
        これどうしたらいいなの?


        \Props.cs(54,72): warning CS8625: null リテラルを null 非許容参照型に変換できません。

        f:id:neetsdkasu:20240617000543p:plain
        •  #

          型をobject?にすればnull許容にはなるだろうけど

          そう指定してもいいなの???

          •  #

            まったくよくわからない・・・

            https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/null

            •  #

              これ・・・?

              https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/builtin-types/nullable-reference-types

              •  (UPD ) #

                参照型で末尾?で型を書いても、値型と違ってNullable<T>でラップされるわけではないらしい
                記述上のnullの取り扱いにかかわるだけで型は変らないのなら、安心してobject?を使えるね・・・

                •  #

                  まぁどうもcsprojの
                  <Nullable>enable</Nullable>
                  を解除すればいいだけなのかもだが

                  •  #

                    てゆーか
                    これ、既存APIシグネチャに影響でないの?

          •  #

            object?に変更した
            一応、動いた

            f:id:neetsdkasu:20240617000555p:plain
            •  #

              ppvのほうもobject?にはできる・・・のかな?

              •  #

                よくわからない

  •  (UPD ) #

    dotnetが壊れたんだが・・・?
    SDKが見つからないと出た

    (2024/06/16 22:46:30.05)$ dotnet build
    The command could not be loaded, possibly because:
    * You intended to execute a .NET application:
    The application 'build' does not exist.
    * You intended to execute a .NET SDK command:
    No .NET SDKs were found.

    •  (UPD ) #

      原因わかった
      実行環境をインストーラーでインストールした際に壊れた

      •  #

        まさかの実行環境側にもdotnetコマンドが付属しており、そこにパスが通っているせいで
        そっちのコマンドが優先実行されて
        開発用に手動インストールしたdotnetが無視されていた

        •  #

          壊れたのはPATH

  •  #

    これでいいのかなぁ・・・・

    f:id:neetsdkasu:20240613114752p:plain
    •  #

      (omitted)

    •  #

      こう、か?

      f:id:neetsdkasu:20240616230514p:plain
      •  #

        (omitted)

 < の独り言 | の独り言 | の独り言 >