积极答复者
C++转成C#

问题
答案
-
dear
这看起来是读/写挡,您可参考以下范例
http://msdn.microsoft.com/zh-cn/library/system.io.file(VS.80).aspx
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
- 已标记为答案 Bob ShenModerator 2012年12月4日 9:42
-
Hi,
你为什么不去找一个C++ to C#的转换器呢,网上好多的哦~
你可以参考:
http://stackoverflow.com/questions/8148949/converting-c-to-c-sharp-program
Cheers, Amy
- 已标记为答案 Bob ShenModerator 2012年12月4日 9:41
全部回复
-
HDEV hDev = NULL; int ret; HANDLE hFile = NULL; char* szDevName[10]; cb->GetWindowText(szDevName,10); CFile f; f.Open("c:\\Anyone Of Us.mp3",CFile::modeRead); ULONG l = (ULONG)f.GetLength(); BYTE * dd = (BYTE*)malloc(l); f.Read(dd,l); f.Close(); //打开设备 ret = sd_OpenDevice(szDevName,&hDev); if(ret != SDR_OK) ErrorHandle... //创建文件 ret = sd_CreateFile(hDev,"Anyone Of Us.mp3",l,0,NULL,&hFile); if(ret != SDR_OK) ErrorHandle... ULONG i=0; ULONG ul = BUFFER_LEN; for (i=0;i<l/BUFFER_LEN && ret == SDR_OK;i++) { //写入数据,一次最多BUFFER_LEN ret = sd_Write(hFile,dd+i*BUFFER_LEN,BUFFER_LEN); } if(ret != SDR_OK) ErrorHandle... ul = l%BUFFER_LEN; if(ul) { //写入数据,最后一块 ret = sd_Write(hFile,dd+i*BUFFER_LEN,ul); if(ret != SDR_OK) ErrorHandle... } free(dd); //关闭打开的文件 sd_CloseFile(hFile); //关闭打开的设备 sd_CloseDevice(hDev);
转换以上代码......
sd.h
#ifndef __SD_DATA_DLL_H__ #define __SD_DATA_DLL_H__ #ifdef __cplusplus extern "C" { #endif #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN #include <windows.h> typedef HANDLE HDEV; #else typedef int HDEV; typedef void* HANDLE; typedef unsigned long ULONG; typedef unsigned char UCHAR; #endif //-----------------return value--------------------// #define SDR_OK 0 #define SDR_NOT_FORMAT 0x01 /* 数据区没有格式化 */ #define SDR_READ_ERROR 0x02 /* 读数据错误 */ #define SDR_WRITE_ERROR 0x03 /* 写数据错误 */ #define SDR_PARAM_ERROR 0x04 /* 参数错误 */ #define SDR_MAX_FILE 0x05 /* 文件数超过了最大值 */ #define SDR_NOT_AUTH 0x06 /* 文件没有授权 */ #define SDR_RESPONSE_ERROR 0x07 /* 获取到的数据错误 */ #define SDR_NOT_SUPPORT 0x08 /* 暂不支持 */ #define SDR_TOO_MANY_DATA 0x09 /* 操作的数据太多 */ #define SDR_MEMORY_ERROR 0x0A /* 内存错误 */ #define SDR_NOT_ENOUGH_SPACE 0x0B /* 空间不够 */ #define SDR_FILE_NOT_FOUND 0x0C /* 没有找到文件 */ #define SDR_FILE_EXIST 0x0D /* 文件已经存在 */ #define SDR_FILE_ACCESS 0x0E /* 文件操作没有权限 */ #define SDR_NO_DEVICE 0x0F /* 没有找到设备 */ #define SDR_NO_MORE_FILES 0x10 /* 枚举文件时没有文件了 */ #define DATA_LENGTH 496 /* 有用数据长度 */ #define MAX_OP_SECTORS 128 /* 一次最多可操作的扇区数 */ #define BUFFER_LEN (DATA_LENGTH*MAX_OP_SECTORS) /* 一次最多读写数据长度 */ /* 功能:枚举所有可用设备 * 参数:szDevNames * 枚举到的所有设备名称,名称之间用NULL分割,最后以2个NULL结束;例如"J\0N\0\0" * 使用sd_Free释放szDevNames * 返回:成功返回SDR_OK, 否则其他 */ int sd_EnumDevice(char** szDevNames); /* 功能:释放内存资源 * 参数:pMem * 要释放的内存指针 * 返回:无 */ void sd_Free(void *pMem); /* 功能:打开指定设备 * 参数:szDevName * 以NULL结尾的设备名称;例如"j\0" * phDevice * 返回的设备句柄,用sd_CloseDevice关闭 * 返回:成功返回SDR_OK, 否则其他 */ int sd_OpenDevice(const char* szDevName, HDEV* phDevice); /* 功能:关闭设备 * 参数:hDevice * 设备句柄,由sd_OpenDevice获取 * 返回:成功返回SDR_OK, 否则其他 */ void sd_CloseDevice(HDEV hDevice); /* 功能:创建新文件,用于写入数据 * 参数:hDevice * 设备句柄,由sd_OpenDevice获取 * szName * 文件名称,以NULL结尾的字符串,长度不超过230个字节 * ulFileLen * 文件长度 * ulFlags * 必须是0 * pKey * 必须是NULL * phFile * 文件句柄 * 返回:成功返回SDR_OK, 否则其他 */ int sd_CreateFile(HDEV hDevice, const char* szName, ULONG ulFileLen, ULONG ulFlags, const UCHAR* pKey, HANDLE* phFile); /* 功能:关闭文件 * 参数:hFile * 文件句柄,由sd_CreateFile获取 * 返回:成功返回SDR_OK, 否则其他 */ void sd_CloseFile(HANDLE hFile); /* 功能:写入数据 * 参数:hFile * 文件句柄,由sd_CreateFile获取 * puData * 要写入的数据 * ulLen * 数据长度,单次读写数据长度不超过 BUFFER_LEN * 返回:成功返回SDR_OK, 否则其他 */ int sd_Write(HANDLE hFile, const UCHAR* puData, ULONG ulLen); #ifdef __cplusplus } #endif #endif //__SD_DATA_DLL_H__
- 已移动 VisualEleven 2012年11月20日 7:40 C# Post (发件人:Visual C++)
- 已合并 Lisa ZhuModerator 2012年11月21日 6:06 duplicate
-
dear
这看起来是读/写挡,您可参考以下范例
http://msdn.microsoft.com/zh-cn/library/system.io.file(VS.80).aspx
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
- 已标记为答案 Bob ShenModerator 2012年12月4日 9:42
-
你好,
你在本论坛发了相同的帖子,为保证良好的论坛环境,我会将其合并为一个帖子。希望不要重复发相同内容的帖。
谢谢你的理解与支持。
Lisa Zhu [MSFT]
MSDN Community Support | Feedback to us
-
Hi,
你为什么不去找一个C++ to C#的转换器呢,网上好多的哦~
你可以参考:
http://stackoverflow.com/questions/8148949/converting-c-to-c-sharp-program
Cheers, Amy
- 已标记为答案 Bob ShenModerator 2012年12月4日 9:41