LoadString()を使用してリソースから文字列をロードするdllに静的関数があります。この関数をdllから呼び出すと、すべて正常に動作します。しかし、私が他のモジュール(activeXコントロール)からこの関数を呼び出すと、エラーERROR_RESOURCE_NAME_NOT_FOUNDでLoadStringが失敗します。 AFX_MANAGE_STATEマクロを試してみましたが、うまくいきませんでした。誰が何がここで問題になる可能性があり、解決策は何かを知っていますか?dllのMFC LoadStringでエラーが発生しました
答えて
文字列が異なるdllのリソースにある場合は、他のモジュールからリソースハンドルを設定して動作させる必要があります。 AfxSetResourceHandleメソッドを使用してリソースハンドルを設定しようとします。
私はリソースハンドルを使用しません(私はCStringのLoadStringを使用します)。私はそのDLLに属するクラス/関数からLoadStringを呼び出します。そして、私はその機能をactiveXから呼び出します。 –
@Aleksandar:モジュールハンドルをCString :: LoadString()に渡さない限り、現在のモジュール内でのみ検索されます。その周りに方法はありません。 – sharptooth
ハンドルをモジュールのインスタンスにLoadString
に渡さないと、デフォルトのリソースハンドルが使用されます。デフォルトのリソースハンドルは、現在のモジュールハンドルに設定されています。したがって、必要な文字列を持つモジュールからLoadString
を呼び出すと、すべて正常に動作します。 LoadString
を他のモジュールから呼び出すと、必要な文字列を見つけることができず、エラーERROR_RESOURCE_NAME_NOT_FOUND
が発生します。あなたはAfxSetResourceHandle
関数を呼び出すことによってそれを無効にすることができます。
また、リソースハンドルをLoadString
に渡すことで、リソースを含むモジュールを明示的に選択することもできます。
適切な(dllまたはexe)リソースがロードされるように、関数の先頭にAFX_MANAGE_STATEを呼び出すようにしてください。 参照: http://msdn.microsoft.com/en-us/library/ba9d5yh5(VS.80).aspx
- 1. MFCアプリケーションのLoadStringをオーバーライドします。
- 2. VB6コードが「DLLの読み込みでエラーが発生しました」エラーが発生しました
- 3. Visual Studio - dllでエラーが発生しました。
- 4. RCurl起動時にlibeay32.dllエラーが発生しました
- 5. CFC上のMFC lntelliSenseで問題が発生しました
- 6. exeとdllの間のC++呼び出しでエラーが発生しました
- 7. エラーが発生しましたelmah.axd
- 8. ホームステイでエラーが発生したときにエラーが発生しました
- 9. glutInit()エラーが発生しました - DLLが見つかりません
- 10. SSRSサブスクリプションでエラーが発生しましたが、Report BuilberまたはReportServer WebUIでエラーが発生しました
- 11. C#でDevComponets.DotNetBar2.dllを使用中に異常なエラーが発生しました
- 12. C#DLLでRegAsmを実行中にエラーが発生しました
- 13. バリデーションスクリプトで問題が発生しました。エラーが発生しました。
- 14. プログラムのデバッグ中にのみエラーが発生しました。 (Oculus HMDのdll内)
- 15. Grailsでエラーが発生しました
- 16. DatePickerでエラーが発生しました
- 17. Firefoxでエラーが発生しました。
- 18. convert.toint32でエラーが発生しました
- 19. アンドロイドスタジオでエラーが発生しました。
- 20. Flumotionでエラーが発生しました
- 21. fs.createReadStreamでエラーが発生しました
- 22. Pythonでエラーが発生しました
- 23. DateTimeFormatterでエラーが発生しました
- 24. CreateTableCommand.ExecuteNonQuery()でエラーが発生しました。
- 25. ダウンロードマネージャでエラーが発生しました
- 26. イオンライブリロードでエラーが発生しました
- 27. コンフィグレーションエラーでエラーが発生しました
- 28. XSLTでエラーが発生しました。
- 29. クイックソートプログラムでエラーが発生しました
- 30. argparseでエラーが発生しました
LoadString()に渡すモジュールハンドルはどれですか? – sharptooth
私は明示的にモジュールハンドルを使用しません。例: CString strTmp; strTmp.LoadString(IDS_TEMP); –