簡単な回答: GetProcAddress を使用して、構造体として宣言された変数のアドレスを取得できます。GetProcAddress のマニュアル ページから:
指定されたダイナミック リンク ライブラリ (DLL) から、エクスポートされた関数または変数のアドレスを取得します。
その関数の名前は、GetProcAddress ではなく GetSymAddress にする必要がありますが、余談になります。
長い答え:
DLL にstruct Foo 型のシンボルインスタンスが含まれているとします。
typedef struct { int x; int array[100]; } Foo;
__declspec( dllexport ) struct Foo Bar =
{
0xdeadbeef,{0}
};
dll をロード済みで、その hModule ハンドルがどこかにある場合は、変数Barのアドレスを取得できます。
struct Foo* Bar = GetProcAddress(hModule,"Bar");
構造自体の定義を取得することはできませんが、とにかくそれが意図したものではないと思います。
注: 名前マングリング、extern "C" 宣言、および要点を明確にするために考慮する必要があるその他の事項を見落としています。読者は、目前のトピックの基本的な内容を既に把握していると思います。