请教C#中调用vc6编译的非托管dll中函数的写法???

迷死特兔 2004-07-06 01:17:04
请教C#中调用vc6编译的非托管dll中函数的写法???
vc6的dll函数如下
DecryptString(TCHAR* szEncryptPwd,TCHAR* szPassword,TCHAR *szKey)

在C#中我是这样写的:
[DllImport("EncryptDll.dll")]
public static extern bool DecryptString([MarshalAs(UnmanagedType.LPWStr)] string szEncryptPwd,[MarshalAs(UnmanagedType.LPWStr)] string szPassword,[MarshalAs(UnmanagedType.LPWStr)] string szKey);

现在的问题是:
C#中调用没问题,没出错,就是只能返回一个字符串中的第一个字符,请问,我的写法上有问题吗?是参数类型错了?还是……?
...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShengNet 2004-07-06
  • 打赏
  • 举报
回复
学习
JR2003 2004-07-06
  • 打赏
  • 举报
回复
请问C++的
typedef struct
{
LPCTSTR file;
char* Name;
}aaa;

如何转为C#格式
jiezhi 2004-07-06
  • 打赏
  • 举报
回复
本示例使用 DllImport 属性输出一个字符串。它还显示如何通过使用 MarshalAs 属性重写函数参数的默认封送处理。
// Marshal.cs
using System;
using System.Runtime.InteropServices;

class PlatformInvokeTest
{
[DllImport("msvcrt.dll")]
public static extern int puts(
[MarshalAs(UnmanagedType.LPStr)]
string m);
[DllImport("msvcrt.dll")]
internal static extern int _flushall();


public static void Main()
{
puts("Hello World!");
_flushall();
}
}

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧