2010-11-18 1 views
1

関数が列挙されている場所から正しい.dll/.exeを見つける必要があります。このために、私はget_libraryNameを使用しています。これは私に、関数が最初に定義されたName(.dll/.exe)ファイルを返すべきです。IDIASymbolのDIA SDK get_libraryNameシンボルがNULLを返すのはなぜですか?

しかし、毎回NULL(BadPtr = 0x00000)..を返します。 関数が定義され使用されている場所から正確なファイル名を取得する方法はありませんか?

よろしく ハッサン

+0

DIAはこれに関連する機能について他にどのような情報を提供していますか?まず、これらの関数の名前は何ですか? – SamB

答えて

1
IDiaSession mSession; 
DiaSourceClass mSourceClass; 
IDiaSymbol mGlobalScope; 
string pdbFileName = @"c:\test.pdb"; 

mSourceClass = new DiaSourceClass(); 
mSourceClass.loadDataFromPdb(pdbFileName); 
mSourceClass.openSession(out mSession); 
mSession.loadAddress = loadAddress; 
mGlobalScope = mSession.globalScope; 

IDiaEnumSymbols methodSymbols; 
mGlobalScope.findChildren(SymTagEnum.SymTagFunction, null, 0, out methodSymbols); 
foreach (IDiaSymbol methodSymbol in methodSymbols) 
{ 
    string projectName = functionSymbol.lexicalParent.name; 
} 

は、この情報がお役に立てば幸い!

関連する問題