2 dpgnvr1989 dpgnvr1989 于 2016.03.07 22:10 提问

CharSet = CharSet.Ansi

Delphi 7.0的PChar兼容Ansi吧,还需要什么地方更改,怎么样才能在C#中进行调用呢?

2个回答

caozhy
caozhy   Ds   Rxr 2016.03.07 22:13
已采纳

在C#中用StringBuilder接受看看,PChar相当于字符串的指针。

lianshaohua
lianshaohua   2016.03.08 08:49

保持charset一致,pchar就是指针,涉及指针的,在C#中一般使用stringbuilder

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] 的解释
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]  这是C#引用非托管的C/C++的DLL的一种定义定义结构体的方式,主要是为了内存中排序,LayoutKind有两个属性Sequential和Explicit Sequential表示顺序存储,结构体内数据在内存中都是顺序存放的 Explicit表示精确布局,需要用Fiel
关于参数BYTE byCharSet = ANSI_CHARSET
 字符集选项:       #define ANSI_CHARSET                         0       #define DEFAULT_CHARSET                     1       #define SYMBOL_CHARSET                      2       #define SHIFTJIS_CH
StructLayout特&性
StructLayout特性           公共语言运行库利用StructLayoutAttribute控制类或结构的数据字段在托管内存中的物理布局,即类或结构需要按某种方式排列。如果要将类传递给需要指定布局的非托管代码,则显式控制类布局是重要的。它的构造函数中用 LayoutKind值初始化 StructLayoutAttribute 类的新实例。 LayoutKind.Sequenti
加密狗的管理层API(C#代码)
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; //class NT88API //{ ////查找加密锁 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, Cal
DllImport属性概述
托管代码指的是必须依靠.NET框架解释运行的代码,非托管代码一般指的是传统的不需要借助.NET框架解释的代码。在.NET出现之前,如VB,C++,DELPHI编写的程序都是非托管代码。                    DllImport属性的功能: 从托管应用程序调用非托管代码。                在开发时会经常遇到的这样的情况,比如商务拨号系统中,直接和话媒硬件打交道的代码
C# 读写加密狗
c# 读写加密狗 要加密的朋友们有福了 [DllImport("Win32dll.dll", CharSet = CharSet.Ansi)] public static unsafe extern uint DogRead(uint idogBytes, uint idogAddr, byte* pdogData); [DllImport("Win32dll.dll", CharSet = CharSet.Ansi)] public static unsafe extern uint DogWrite(uint idogBytes, uint idogAddr, byte* pdogData);
charset=gb2312和charset=utf-8的区别
charset=gb2312代表说明网站是采用的编码是简体中文; charset=utf-8代表世界通用的语言编码; 最常用到的是charset=gb2312、charset=iso-8859-1和charset=utf-8 charset=utf-8这个编码可以用到中文、韩文、日文等世界上所有语言编码上。 下面讲讲这几个的区别: 字符集与编码 各个国家和地区所制定的不同 ANSI 编
C# 导入dll时CallingConvention的设置问题
转载自:http://www.xuebuyuan.com/645807.html #调用非托管的.dll文件方法如下: [DllImport("XORDll.dll", EntryPoint = "OutEncrypt", CharSet = CharSet.Ansi, CallingConvention
C#调用C/C++ DLL 参数传递和回调函数的总结
Int型传入: Dll端: extern "C" __declspec(dllexport) int Add(int a, int b) {     return a+b; } C#端: [DllImport("aeClient2.0.dll", CallingConvention =CallingConvention.Cdecl)]
c#GetVideo
调去摄像头截图 [DllImport("avicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] public static extern int capCreateCaptureWindowA([MarshalAs(UnmanagedType.VBByRefStr)] ref string lpszWindowName, int dwStyle, int x, int y, int nWidth, short nHeight, int hWndParent, int nID); [DllImport("avicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] public static extern bool capGetDriverDescriptionA(short wDriver, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpszName, int cbName, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpszVer, int cbVer); [DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] public static extern bool DestroyWindow(int hndw); [DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] public static extern int SendMessage(int hwnd, int wMsg, int wParam, [MarshalAs(UnmanagedType.AsAny)] object lParam); [DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] public static extern int SetWindowPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags); [DllImport("vfw32.dll")] public static extern string capVideoStreamCallback(int hwnd, videohdr_tag videohdr_tag); [DllImport("vicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] public static extern bool capSetCallbackOnFrame(int hwnd, string s);