我正在使用C#.NET 4编写的Windows服务中的DllImport加载用Delphi 7编写的.dll文件。在部署此服务之前,我只想确保不需要执行任何特殊操作来处理非托管.dll文件。如果/当DllImport被多次调用时会发生什么?
我的C#代码看起来是这样的:
[DllImport("MyDelphiDLL.dll")]
private static extern string DoSomething(string value);
private void SomeMethod(List<string> values)
{
foreach (string value in values)
{
string newValue = DoSomething(value);
}
}
的DoSomething
函数将被调用多次,并且我嫌疑是MyDelphiDLL.dll只被载入既可以当管理.dll文件被加载,或首先参考DoSomething,但我不确定。
我已经看过MSDN上的DllImportAttribute Class文档,但它并没有真正说明某种方式。我也搜索过,并且以我能想到的方式搜索这个问题,但仍然没有找到明确的答案。
我只是想确保我正确地做到这一点。
它只会被加载一次,发生在第一次调用函数时。 –
@HansPassant有哪些说法呢? –