2012-04-05 12 views
0

FreeSid()は、MFCアプリケーションでWindows 7で頻繁にクラッシュします。それは何年もWindows XPで完璧に動作しています。FreeSid()関数を呼び出すと、Windows 7のMFCアプリケーションがクラッシュする

誰でもこの回避策を知っていますか?

Someone else had this same problem in VBただし、C++で修正する方法は不明です。

+2

VB6の問題は、間違った署名で関数を宣言していたことでした。それはおそらくここでは適用できないでしょう。関数への有効なポインタを渡していますか?いくつかのコードを参照する必要があります... –

+0

Codyのコメントを展開するには、XPでクラッシュしなかっただけであっても、コードに問題はありません。 –

+0

クイックフィードバックをお寄せいただきありがとうございます。ポインタの使用状況を再確認して復帰します。 – vaibhav

答えて

1

SIDを解放する方法はいくつかあります。 ConvertStringSidToSidから取得する場合は、LocalFreeを使用してください。 AllocateAndInitializeSidから取得する場合は、FreeSidを使用してください。 2つを混在させると、Windowsのバージョンによって異なる未定義の結果が得られます。

+0

この問題は、我々はこれらのユーザーグループを処分したとコードが正常に動作し始めたので、次のユーザーグループ SQLServer2005SQLBrowserUser $ MACHINE2 SQLServerMSSQLServerADHelperUser $ MACHINE2 SQLServerMSSQLUser $ MACHINE2 $ SQLEXPRESS SQLServerSQLAgentUser $ MACHINE2 $ SQLEXPRESS で起こっていました。 ありがとう – vaibhav

+0

@ user1314356:あなたのコードは依然として壊れていますが、公開している状況を削除するだけで問題を隠したことがあります。 –

+0

はい、私たちは非常に多くの問題に直面していましたが、コードをWindows7とVS 2010に移行しても、回避策があってもうれしいです – vaibhav

関連する問題