CDatabase クラスで発生するメモリ リークの問題について

こんにちは、Visual Studio サポート チームです。 今回は、MFC の CDatabase クラスを特定の方法で使用した場合に発生するメモリ リークの問題についてご案内します。この現象は、Visual Studio 2012 以降のバージョンに含まれる MFC で発生します。   現象 CDatabase クラスの同一のオブジェクトに対して OpenEx メソッドと Close メソッドを使用するとメモリ リークが発生し、メモリ使用量が増加し続けます。   原因 この現象は Visual Studio 2012 で追加された、CDatabase クラスの接続文字列の暗号化を行う処理に起因しています。 OpenEx メソッドで接続文字列を暗号化するためのメモリが割り当てられますが、再度 OpenEx メソッドが呼び出された際にメモリを解放せず、新たに割り当てを行っていました。 なお、弊社ではこの問題を MFC の不具合と認識しており、Visual Studio の将来のバージョンで修正を検討しています。 弊社製品の不具合によりご迷惑をおかけし、大変申し訳ございません。   対処方法 以下のいずれかの方法により、メモリ リークの問題に対処することが可能です。 同一のオブジェクトに対して OpenEx メソッドを複数呼び出さないようにする。(OpenEx メソッドで割り当てたメモリはデストラクタで解放されます。) CDatabase クラスを継承し、OpenEx メソッドを修正する。 上記 2. の具体的な実装例を以下にご案内いたします。…


Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題について

こんにちは、Visual Studio サポート チームです。 今回は、Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題とその影響についてご案内します。 この問題は以下のように Stack Overflow でも報告されておりましたが、この度、複数のお客様から弊社へお問い合わせをいただきましたので本ブログでもご紹介させていただきます。より多くの開発者様のお役に立てましたら幸いです。   VC2015で、double変数ddx_textのトラブル https://ja.stackoverflow.com/questions/16592/vc2015%E3%81%A7-double%E5%A4%89%E6%95%B0ddx-text%E3%81%AE%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB   現象 _snscanf_s 関数で浮動小数点書式を指定した場合、先頭が ‘0’ で始まる場合に終端文字 ” が正しく扱われず、_snscanf_s 関数に指定した文字数全体に対して解析が行われます。例えば、文字配列の内容が “02” であった場合、_snscanf_s 関数で期待される結果は 0 ですが、不具合により実際には 2 が返されます。 また、MFC ライブラリの DDX_Text 関数では内部で _snscanf_s 関数を使用しているため、この問題の影響を受けて、入力した値と異なる値が浮動小数点型変数に格納される可能性があります。エディット コントロールに “0” を入力した場合、文字列バッファの “0” 以降の値はスタックの状態によって不定となるため、DDX_Text 関数で変数に格納される値も不定となります。   原因 Visual Studio 2015 以降で利用されている新しい C ランタイム…


No environment monitoring on customer/partner-owned environments

Using a purchased Azure subscription, customers and partners can deploy a Microsoft Dynamics 365 for Finance and Operations, Enterprise edition environment through the Cloud Hosted Environments feature in LCS. These environments are owned and controlled by the customer or partner. In the past, you could use the Activity monitoring page to view the usage and…


DevTest a DevOps seminář

Zveme vás na jednodenní technický seminář „Microsoft DevTest & DevOps multiplatformě v cloudu“. Je určen vývojářům, IT odborníkům, architektům a vedoucím multiplatformních IT týmů, kteří využívají nebo zvažují využití hybridní nebo plně cloudové DevTest a DevOps scénáře. Seminář je koncipován jako školení poskytující technický přehled a tipy pro začátečníky i pokročilé architekty.  Po úvodní přednášce…


Azure Service Bus Geo-disaster recovery (preview) released!

We are excited to announce the public preview for enabling Geo-disaster recovery for Service Bus. This article gives an overview of how to enable regional disaster recovery capability for Service Bus. Previously, the only way to protect from events which would qualify as disaster or Geo-disaster was by managing high availability yourself in your respective…


Using Strings for Computer Data Interchange

Previously I blogged about Culture Date Shouldn’t Be Considered Stable (Except for Invariant) but it may have led to confusion in a couple cases.  Specifically, a fallacy that strings are localized and therefore not a great way to store data. It is fine to store data in a string if need be.  Oftentimes there are…


10/16 – Errata added for [MS-OLEDS]: Object Linking and Embedding (OLE) Data Structures

Multiple updates at https://msdn.microsoft.com/en-us/library/ec21f8ad-0fcf-4d4e-8675-95096e604a3a.aspx: In Section 2.1.7, DVTARGETDEVICE, updated the description of PortNameOffset In Section 2.3.4, OLEPresentationStream, changed the descriptions of the TocCount and TocEntry fields In Section 2.3.8, CompObjStream, moved the product behavior note from the UnicodeUserType field to the UnicodeClipboardFormat field and updated it.


10/16 – Errata added for [MS-DTYP]: Windows Data Types

In Section 2.4.6, Security Descriptor, the order of the SS and DT control bit flags have been reversed, to match the actual observed behavior: https://msdn.microsoft.com/en-us/library/mt242373.aspx