下面这段是写在一个DLL中的一个函数,功能是传入应用的索引号,等参数调用这个接口,可以返回应用名。我是用委托的方法去做的。
        public delegate string DeGetApp(int nPos, string lpName, ref UInt32 pdwNameLen, string lpBuffer, ref UInt32 pdwBufSize);
我如上面这样写是取不到的应用名的。LPTSTR lpName这个应该怎样修改为C#的类型?int WINAPI GetApp(int nPos, LPTSTR lpName, PDWORD pdwNameLen, LPTSTR lpBuffer, PDWORD pdwBufSize)
{
char buffer[128]
buffer
DWORD dwNameLen, dwBufferSize;
DWORD dwLen;
if (!bConnected) return -1;
if (nPos <= 0 || nPos > 3)
return -1;
dwNameLen = strlen(APP_NAMES[nPos - 1]);
dwBufferSize = strlen(APP_BUFFER[nPos - 1]);
if (NULL != lpName && *pdwNameLen > 0)
{
dwLen = *pdwNameLen >= dwNameLen ? dwNameLen : *pdwNameLen;
CopyMemory(lpName, APP_NAMES[nPos - 1], dwLen);
*pdwNameLen = dwLen;
}
if (NULL != lpBuffer && *pdwBufSize > 0)
{
dwLen = *pdwBufSize >= dwBufferSize ? dwBufferSize : *pdwBufSize;
CopyMemory(lpBuffer, APP_BUFFER[nPos - 1], dwLen);
*pdwBufSize = dwLen;
}
return 0;
}