我必须注册名为MatchMolDLL.dll
的.dll文件。
要注册DLL,我按照以下步骤操作:
1)转到RUN
2)键入“cmd”
3)键入“regsvr32 MatchMolDLL.dll”
然而regsvr32.exe
报告:
“已加载MatchMolDLL.dll,但未找到DllRegisterServer入口点。”
我该如何注册?
如果我必须将此.dll文件与另一个可执行文件链接,可以这样做吗?
答案 0 :(得分:1)
MatchMoIDLL.dll
不是COM DLL,您无法使用regsvr32.exe
进行注册。这是一个普通的旧Win32 DLL。
您可以在此处找到更多相关信息:
http://merian.pch.univie.ac.at/~nhaider/cheminf/cmmm.html#dll
答案 1 :(得分:1)
它不是COM服务器。您必须使用P / Invoke来使用此DLL。这些说明在source code file中提供,它给出了VB6声明:
Private Declare Sub mm_SetMol Lib "matchmolDLL.dll" (ByVal st As String)
Private Declare Sub mm_SetCurrentMolAsQuery Lib "matchmolDLL.dll" ()
Private Declare Function mm_Match Lib "matchmolDLL.dll" (ByVal Exact As Boolean) As Long
Private Declare Function mm_GetRings Lib "matchmolDLL.dll" () As Long
Private Declare Function mm_GetAtomRing Lib "matchmolDLL.dll" (ByVal AtomNumber As Long) As Long
Private Declare Sub mm_Version Lib "matchmolDLL.dll" (ByVal st As String)
您必须将其转换为相应的VB.NET或C#[DllImport]声明。在这些声明中使用“int”而不是Long。例如:
[DllImport("matchmolDLL.dll", CharSet = CharSet.Ansi)]
private static extern void mm_SetMol(string st);
等等。