none
Win32APIの引用 RRS feed

回答

  •  えムナウ さんからの引用

    Culture=neutral  になっていますか?

    そこは、System.Drawing.Icon の Type.Fullname だから Culture が変化することはない&変化しても問題のエラーにはならないはず。

    # VisualStduio では、リソースのカルチャはファイル名の末尾で決まりますので

     

    2007年5月17日 1:41

すべての返信

  • frmMain.Designer.cs:行 48 はどんなコーディングになっていますか?

     

    frmMain.Designer.cs は、「プロジェクト」メニュー-「すべてのファイルを表示」で frmMain.cs の子供として

    ソリューションエクスプローラに表示されます。

    2007年5月14日 7:44
  • えムナウさん

    48行目は

      this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));

    となっています。

     

    2007年5月14日 7:51
  • notifyIcon1.Icon のリソースが変になっているようですね。

    Resources.resx をテキストエディタ(Notepadとか)で開いて、以下の部分を確認してください。


      <data name="notifyIcon1" type="System.Resources.ResXFileRef, System.Windows.Forms">
        <value>..\Resources\notifyIcon1.Icon;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxxxxxxxx</value>
      </data>

    Culture=neutral  になっていますか?

     

    なっていなければ一度notifyIcon1.Icon のリソースを削除してもう一度設定してみてください。

    パソコンの言語設定とかいじっている場合は元に戻しておいてくださいね。

    2007年5月14日 8:26
  • えムナウさんResources.resx をテキストエディタで開いてみましたが、<data name="notifyIcon1" type="System.Resources.ResXFileRef, System.Windows.Forms">
        <value>..\Resources\notifyIcon1.Icon;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxxxxxxxxxx</value>
      </data>の行が見当たりません。

    Resource.resxは以下のようになっています。

     <?xml version="1.0" encoding="utf-8"?>
    <root>
      <!--
        Microsoft ResX Schema
       
        Version 2.0
       
        The primary goals of this format is to allow a simple XML format
        that is mostly human readable. The generation and parsing of the
        various data types are done through the TypeConverter classes
        associated with the data types.
       
        Example:
       
        ... ado.net/XML headers & schema ...
        <resheader name="resmimetype">text/microsoft-resx</resheader>
        <resheader name="version">2.0</resheader>
        <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
        <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
        <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
        <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
        <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
            <value>[base64 mime encoded serialized .NET Framework object]</value>
        </data>
        <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
            <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
            <comment>This is a comment</comment>
        </data>
                   
        There are any number of "resheader" rows that contain simple
        name/value pairs.
       
        Each data row contains a name, and value. The row also contains a
        type or mimetype. Type corresponds to a .NET class that support
        text/value conversion through the TypeConverter architecture.
        Classes that don't support this are serialized and stored with the
        mimetype set.
       
        The mimetype is used for serialized objects, and tells the
        ResXResourceReader how to depersist the object. This is currently not
        extensible. For a given mimetype the value must be set accordingly:
       
        Note - application/x-microsoft.net.object.binary.base64 is the format
        that the ResXResourceWriter will generate, however the reader can
        read any of the formats listed below.
       
        mimetype: application/x-microsoft.net.object.binary.base64
        value   : The object must be serialized with
                : System.Serialization.Formatters.Binary.BinaryFormatter
                : and then encoded with base64 encoding.
       
        mimetype: application/x-microsoft.net.object.soap.base64
        value   : The object must be serialized with
                : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
                : and then encoded with base64 encoding.

        mimetype: application/x-microsoft.net.object.bytearray.base64
        value   : The object must be serialized into a byte array
                : using a System.ComponentModel.TypeConverter
                : and then encoded with base64 encoding.
        -->
      <xsdTongue Tiedchema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urnTongue Tiedchemas-microsoft-com:xml-msdata">
        <xsd:element name="root" msdata:IsDataSet="true">
          <xsd:complexType>
            <xsd:choice maxOccurs="unbounded">
              <xsd:element name="metadata">
                <xsd:complexType>
                  <xsdTongue Tiedequence>
                    <xsd:element name="value" type="xsdTongue Tiedtring" minOccurs="0" />
                  </xsdTongue Tiedequence>
                  <xsd:attribute name="name" type="xsdTongue Tiedtring" />
                  <xsd:attribute name="type" type="xsdTongue Tiedtring" />
                  <xsd:attribute name="mimetype" type="xsdTongue Tiedtring" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="assembly">
                <xsd:complexType>
                  <xsd:attribute name="alias" type="xsdTongue Tiedtring" />
                  <xsd:attribute name="name" type="xsdTongue Tiedtring" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="data">
                <xsd:complexType>
                  <xsdTongue Tiedequence>
                    <xsd:element name="value" type="xsdTongue Tiedtring" minOccurs="0" msdataSurpriserdinal="1" />
                    <xsd:element name="comment" type="xsdTongue Tiedtring" minOccurs="0" msdataSurpriserdinal="2" />
                  </xsdTongue Tiedequence>
                  <xsd:attribute name="name" type="xsdTongue Tiedtring" msdataSurpriserdinal="1" />
                  <xsd:attribute name="type" type="xsdTongue Tiedtring" msdataSurpriserdinal="3" />
                  <xsd:attribute name="mimetype" type="xsdTongue Tiedtring" msdataSurpriserdinal="4" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="resheader">
                <xsd:complexType>
                  <xsdTongue Tiedequence>
                    <xsd:element name="value" type="xsdTongue Tiedtring" minOccurs="0" msdataSurpriserdinal="1" />
                  </xsdTongue Tiedequence>
                  <xsd:attribute name="name" type="xsdTongue Tiedtring" use="required" />
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:complexType>
        </xsd:element>
      </xsdTongue Tiedchema>
      <resheader name="resmimetype">
        <value>text/microsoft-resx</value>
      </resheader>
      <resheader name="version">
        <value>2.0</value>
      </resheader>
      <resheader name="reader">
        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <resheader name="writer">
        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
    </root>

    また,

    public abstract class win32

    {

    }

    をコメントとすれば、起動は出来ます。

     

    2007年5月14日 22:29
  • frmMain.resx のほうですね。

      <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxx" />
      <data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

    こんな感じの部分があると思います。

     

     

    >public abstract class win32

    >{

    >}

    >をコメントとすれば、起動は出来ます。

    public abstract class win32 の中でCultureを変更してしまっているんですかね?

     

    2007年5月15日 9:15
  • 確かにfrmMain.resxのほうに

    <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      <data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

    はありました。

    2007年5月16日 0:51
  • public abstract class win32 の中にCultureをおかしくしている原因があるようですね。

    すべてコメントにすれば起動するそうですので、

    一度すべてコメントにしてコメントをひとつづつはずしていけばどこが悪いのかわかります。

     

    2007年5月16日 6:47
  • ありがとうございます。やってみます。

    ただ、Classにしなければ、うまく起動しました。

    2007年5月16日 7:55
  •  えムナウ さんからの引用

    Culture=neutral  になっていますか?

    そこは、System.Drawing.Icon の Type.Fullname だから Culture が変化することはない&変化しても問題のエラーにはならないはず。

    # VisualStduio では、リソースのカルチャはファイル名の末尾で決まりますので

     

    2007年5月17日 1:41
  • 一度全てをコメントにしてひとつづつはずしていきましたが、全てで、同じ現象となりました。

     

    2007年5月17日 2:17
  • >ただ、Classにしなければ、うまく起動しました。

    解決しているということで良いんですよね。

     

    2007年5月17日 9:37
  •  いろいろとありがとうございました。

    Classとして宣言したかったのですが、どうもうまくきません。

    一応、動く形には出来ました。

    2007年5月18日 4:00