//Test.dll中函数原型
extern "C" __declspec(dllexport) long __stdcall Init(
char* UserName,
char* UserPass);//在源程序中调用
namespace cc
{
[DllImport("Test.dll", EntryPoint = "Init")]
public static extern long Init(?, ?);
}如何申明init();
C#中没有指针怎么定义成char*类型
extern "C" __declspec(dllexport) long __stdcall Init(
char* UserName,
char* UserPass);//在源程序中调用
namespace cc
{
[DllImport("Test.dll", EntryPoint = "Init")]
public static extern long Init(?, ?);
}如何申明init();
C#中没有指针怎么定义成char*类型
public static extern long Init([MarshalAs(UnmanagedType.LPWStr] UserName, [MarshalAs(UnmanagedType.LPWStr] UserPass);
然后将 str 传入就OK了.
public static extern long Init([MarshalAs(UnmanagedType.LPWStr] string UserName, [MarshalAs(UnmanagedType.LPWStr]string UserPass);
调用Init("admin","123");//DLL中账号匹配正确return 0,错误return 1;
然后我在页面的text中输出,
为什么我返回的都是两串数字,如输出 440069599052955649
[DllImport("Test.dll", EntryPoint = "Init")]
public static extern long Init([MarshalAs(UnmanagedType.LPWStr)] string UserName, [MarshalAs(UnmanagedType.LPWStr)]string UserPass);
返回的数字一样使用
public static extern long Init(StringBuilder UserName, StringBuilder UserPass);
返回的数字不一样怎么回事呢?