2018-04-13
DllImport
using System.Runtime.InteropServices;
dll放置的地方
1、exe所在目录
2、System32目录
3、环境变量目录
4、或者可以这样server.MapPath(.\bin*.dll)web中的
5、后来发现用[DllImport(@"C:\OJ\Bin\Judge.dll")]这样指定DLL的绝对路径就可以正常装载。
6、非托管的处理会比较麻烦.实际上,你拷贝到bin没有任何帮助,因为CLR会把文件拷贝到一个临时目录下,然后在那运行web,而CLR只会拷贝托管文件,这就是为什么我们明明把非托管的dll放在了bin下却依然提示不能加载模块了.
7 、导入Dll到Unity中。将Dll拷贝到Assets目录下任何一个目录都可以。一般是在Plugins目录中,因为Dll大多是外部功能块,同时也方便跨语言调用。
8、Unity里面调用Dll暂时遇到的坑
一、dll import
并口通讯
namespace ParallelPortControl
{
class PortControl // Import dll to project
{
[DllImport("inpout32.dll", EntryPoint = "Out32")]
public static extern void Output(int address, int value); // decimal
}
public partial class Form1 : Form
{
int decData = 0;
int decAdd = 888; // 378h Selected Default
PortControl.Output(decAdd, decData);
}
}
1、简单地说下32位环境,使用x86配置
2、端口888转为16进制就是0378
3、kernel32.dll暂时未解决