c# 调用Labview dll中的 char 参数

Labview 的dll char title[]参数在c#中的对应是byte[]

[MarshalAs(UnmanagedType.LPArray, SizeConst = 33)] byte[] ComputerID

c dll的声明

#include "extcode.h"
#ifdef __cplusplus
extern "C" {
#endif

/*!
 * LicenseGeneratorCmd
 */
void __stdcall LicenseGeneratorCmd(char ComputerID[], char ActivationCode[], 
    int32_t len);

MgErr __cdecl LVDLLStatus(char *errStr, int errStrLen, void *module);

void __cdecl SetExecuteVIsInPrivateExecutionSystem(Bool32 value);

#ifdef __cplusplus
} // extern "C"
#endif

 

c# 中引用dll
       

[DllImport("LicGen.dll", EntryPoint = "LicenseGeneratorCmd", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
        public static extern void LicenseGeneratorCmd([MarshalAs(UnmanagedType.LPArray, SizeConst = 33)] byte[] ComputerID, [MarshalAs(UnmanagedType.LPArray, SizeConst = 33)] byte[] ActivationCode, int len);


        

c#调用dll

byte[] d1 = System.Text.Encoding.UTF8.GetBytes("32CH-ZWM2-FCDG-2FK6");;
byte[] d2 = new byte[33];

DllClass.LicenseGeneratorCmd(d1, d2, 33);

MessageBox.Show("返回内容:" + System.Text.Encoding.Default.GetString(d2));

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页