在WPF里面是这样引用的:
public class MyTransDll
{
[DllImport("MyTransDll.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
public static extern int MyTrans([MarshalAs(UnmanagedType.LPStr)]StringBuilder exportpath, [MarshalAs(UnmanagedType.LPStr)]StringBuilder importpath);
}
在网上没找到,直接来问大家了,有知道的朋友说交流一下。THX
12 个解决方案
#1
dll文件放到目标机器上了吗.
放到相应的路径上了吗
放到相应的路径上了吗
#2
两边的MyTransDll.dll是同一个吗?
#3
编译是X86方式吗?有的机器是32位机器,有的64位机器,编译方式时也很重要;
#4
放在目标机器上了,EXE和DLL都在一个目录下。
我甚至用installshield来做过一个安装包,同样的问题。
#5
具体错误是什么?
MyTransDll.dll依赖于什么类库吗?
一般来讲需要安装VC运行时
例如VS2010的话,需要安装:
Microsoft Visual C++ 2010 Redistributable Package (x86)
https://www.microsoft.com/en-au/download/details.aspx?id=5555
MyTransDll.dll依赖于什么类库吗?
一般来讲需要安装VC运行时
例如VS2010的话,需要安装:
Microsoft Visual C++ 2010 Redistributable Package (x86)
https://www.microsoft.com/en-au/download/details.aspx?id=5555
#7
你的MyTransDll.dll 是否在Debug或者Release 文件夹下?
#8
是一个DLL,这个确定。
我这样处理了:DLL工程的properity里改不了,我把EXE的改成X86的模式了。
但是依然不行。
我依照这个帖子的方法做了。地址:http://www.cnblogs.com/zhuweisky/archive/2013/01/09/2852431.html
可是有很多个msvcp80.dll
不知怎么办了。。。问题依然没有解决
#9
你的错误提示究竟是什么?
#10
我找到解决方案了,3楼是正解,非常感谢。之前没有成功的原因是有另外一个小BUG。。。。
非常感谢大家的帮助,又给我上了很多的课。分数还是人人有份。。。
dll文件放到目标机器上了吗.
放到相应的路径上了吗
编译是X86方式吗?有的机器是32位机器,有的64位机器,编译方式时也很重要;
非常感谢大家的帮助,又给我上了很多的课。分数还是人人有份。。。
#11
你的错误提示究竟是什么?
提示是 无法加载DLL
#12
两边的MyTransDll.dll是同一个吗?
是一个DLL,这个确定。
dll文件放到目标机器上了吗.
放到相应的路径上了吗
编译是X86方式吗?有的机器是32位机器,有的64位机器,编译方式时也很重要;
我这样处理了:DLL工程的properity里改不了,我把EXE的改成X86的模式了。
但是依然不行。
我依照这个帖子的方法做了。地址:http://www.cnblogs.com/zhuweisky/archive/2013/01/09/2852431.html
可是有很多个msvcp80.dll
不知怎么办了。。。问题依然没有解决
msvcp80.dll就是运行时里面的东西,安装我5楼说的应该可以。
另外要注意的是,安装的运行时是release的,因此你的C#程序也需要release的才可以。
#1
dll文件放到目标机器上了吗.
放到相应的路径上了吗
放到相应的路径上了吗
#2
两边的MyTransDll.dll是同一个吗?
#3
dll文件放到目标机器上了吗.
放到相应的路径上了吗
编译是X86方式吗?有的机器是32位机器,有的64位机器,编译方式时也很重要;
#4
dll文件放到目标机器上了吗.
放到相应的路径上了吗
放在目标机器上了,EXE和DLL都在一个目录下。
我甚至用installshield来做过一个安装包,同样的问题。
#5
具体错误是什么?
MyTransDll.dll依赖于什么类库吗?
一般来讲需要安装VC运行时
例如VS2010的话,需要安装:
Microsoft Visual C++ 2010 Redistributable Package (x86)
https://www.microsoft.com/en-au/download/details.aspx?id=5555
MyTransDll.dll依赖于什么类库吗?
一般来讲需要安装VC运行时
例如VS2010的话,需要安装:
Microsoft Visual C++ 2010 Redistributable Package (x86)
https://www.microsoft.com/en-au/download/details.aspx?id=5555
#6
http://bbs.csdn.net/topics/30029784
这里面已经包含了各种可能
这里面已经包含了各种可能
#7
你的MyTransDll.dll 是否在Debug或者Release 文件夹下?
#8
两边的MyTransDll.dll是同一个吗?
是一个DLL,这个确定。
dll文件放到目标机器上了吗.
放到相应的路径上了吗
编译是X86方式吗?有的机器是32位机器,有的64位机器,编译方式时也很重要;
我这样处理了:DLL工程的properity里改不了,我把EXE的改成X86的模式了。
但是依然不行。
我依照这个帖子的方法做了。地址:http://www.cnblogs.com/zhuweisky/archive/2013/01/09/2852431.html
可是有很多个msvcp80.dll
不知怎么办了。。。问题依然没有解决
#9
你的错误提示究竟是什么?
#10
我找到解决方案了,3楼是正解,非常感谢。之前没有成功的原因是有另外一个小BUG。。。。
非常感谢大家的帮助,又给我上了很多的课。分数还是人人有份。。。
dll文件放到目标机器上了吗.
放到相应的路径上了吗
编译是X86方式吗?有的机器是32位机器,有的64位机器,编译方式时也很重要;
非常感谢大家的帮助,又给我上了很多的课。分数还是人人有份。。。
#11
你的错误提示究竟是什么?
提示是 无法加载DLL
#12
两边的MyTransDll.dll是同一个吗?
是一个DLL,这个确定。
dll文件放到目标机器上了吗.
放到相应的路径上了吗
编译是X86方式吗?有的机器是32位机器,有的64位机器,编译方式时也很重要;
我这样处理了:DLL工程的properity里改不了,我把EXE的改成X86的模式了。
但是依然不行。
我依照这个帖子的方法做了。地址:http://www.cnblogs.com/zhuweisky/archive/2013/01/09/2852431.html
可是有很多个msvcp80.dll
不知怎么办了。。。问题依然没有解决
msvcp80.dll就是运行时里面的东西,安装我5楼说的应该可以。
另外要注意的是,安装的运行时是release的,因此你的C#程序也需要release的才可以。