C/C++
int main(int argc, char** argv) {
ClrAssembly m_assembly = NULL;
// Load assembly from assembly fullname
HRESULT m_result = Assembly_Load(L"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", m_assembly);
if (m_result == CLR_OK) {
// Get the assembly location
int m_bufferLen = Assembly_GetLocation(m_assembly, NULL, 0);
wchar_t *m_buffer = new wchar_t[m_bufferLen + 1];
// Get the assembly location
Assembly_GetLocation(m_assembly, m_buffer, m_bufferLen);
std::wcout << "Assembly Location: " << m_buffer << std::endl;
delete[] m_buffer;
}
return 0;
}
Object Pascal
var
m_result: HResult;
m_assembly: ClrAssembly;
m_bufferLen: Integer;
m_buffer: PWideChar;
begin
m_assembly := nil;
// Load assembly from assembly fullname
m_result := Assembly_Load('mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089',
m_assembly);
if m_result = CLR_OK then
begin
// Get the assembly location
m_bufferLen := Assembly_GetLocation(m_assembly, nil, 0);
GetMem(m_buffer, m_bufferLen);
try
// get assembly location
Assembly_GetLocation(m_assembly, m_buffer, m_bufferLen);
Writeln('Assembly Location: '+ string(m_buffer));
finally
FreeMem(m_buffer);
end;
end;
end.