学習のために、C#からアセンブリ関数を呼び出そうとしています。私は非常に無菌的なプロジェクトで、できる限り簡単にすべてを行っています。これが私のアセンブリです(主にcodeprojectからカットアンドペーストします):
.386
.model flat, stdcall
option casemap :none
include \masm32\include\masm32rt.inc
.code
LibMain proc instance:dword,reason:dword,unused:dword
mov eax,1
ret
LibMain endp
PrintMess proc
print "Test"
exit
PrintMess endp
End LibMain
注:アセンブリは問題なくビルドされます。エラーはなく、唯一の警告は、masm32rt.incに.model
アセンブラーが無視している別の行があることです。この警告は問題ありません。これらの手順を使用して環境をセットアップしました。
私がよく知っている言語であるC#の場合、2つの主要なアプローチを試しました。リフレクションと参照としてのDLLの追加です。どちらも、アセンブリマニフェストが必要であるというエラーを表示します。ここで私は途方に暮れています。
私のC#は単純です:
Assembly mylib = Assembly.LoadFile(@"C:\mypath\MyLib.dll");
そして、私The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)
はその行にエラーとして表示されます。アセンブリマニフェストについては何も知りません。作成して埋め込む方法についての方向性をいただければ幸いです。