解决方案 »
- 如何从TXT文本中读取数据到textBox.Text里
- 开通了博客,欢迎大家光顾http://blog.csdn.net/sz101
- 水晶报表动态改变纸张时,总是出现以下错误“设置打印机发生错误,错误信息为:无效索引。 (异常来自 HRESULT:0x8002000B (DISP_E_BADINDEX))”
- vs.net的资源管理器未默认引用整个framework类库是出于什么目的呢?
- 有关"消息"传送的疑问?????
- 为什么加水印后,背景图片没有原来的背景清晰呢?请老大们帮忙,万分感谢!!
- 数据源更新问题
- 想做个触摸屏的界面,B/S的
- 准备开张一个新系统, 技术选型?
- 关于crystalreport的问题.在线等待.
- .NET RIA Services 下载
- 线程调用方法,如何判断该方法正在执行
[DllImport("CreateGWLicense.dll")]
public static extern IntPtr fnCreateGWLicense(string key, int KeyLen, ref int BufLen);
//..............
IntPtr result = fnCreateGWLicense(key, keylen, ref buflen)
string s = Marshal.PtrToStringAuto(result, buflen);
或者
byte[] b = new byte[buflen];
Marshal.Copy(result, b, 0, buflen);
执行这句代码的时候IntPtr result = fnCreateGWLicense(key, keylen, ref buflen)报错!
对 PInvoke 函数“ConsoleApplication.PInvoke!ConsoleApplication.PInvoke.Program::fnCreateGWLicense”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
[DllImport("CreateGWLicense.dll")]
[return: MarshalAs(UnmanagedType.LPArray, SizeConst = 8)]
public static extern IntPtr fnCreateGWLicense(ref StringBuilder key, int KeyLen, ref int BufLen); static void Main(string[] args)
{
StringBuilder key = new StringBuilder();
key.Append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
int keylen = key.Length;
int buflen = key.Length; IntPtr result = fnCreateGWLicense(ref key, keylen, ref buflen);
string s = Marshal.PtrToStringAuto(result, buflen);
}
这样修改了还是包错!
IntPtr result = fnCreateGWLicense(ref key, keylen, ref buflen);
无法封送处理“return value”: 无效的托管/非托管类型组合(Int/UInt 必须与 SysInt 或 SysUInt 成对出现)。