zoukankan      html  css  js  c++  java
  • MT4调用Windows API进行文件读写操作

    /*导入相关函数*/
    #import "kernel32.dll"
       int CreateDirectoryW(string directoryName,int type);
       int CreateFileW(string Filename, int AccessMode, int ShareMode, int PassAsZero, int CreationMode, int FlagsAndAttributes, int AlsoPassAsZero);
       int WriteFile(int FileHandle, string BufferPtr, int BufferLength, int &BytesWritten[], int PassAsZero);
       int ReadFile(int FileHandle, uchar &Buffer[], int BufferLength, int & BytesRead[], int PassAsZero);
       int CloseHandle(int FileHandle);
       int GetFileSize(int FileHandle, int PassAsZero);
    #import
    /*读文件*/
    string ReadFile(string Filename)
    {
        string strFileContents = "";
        int h = CreateFileW(Filename, 0x80000000 /*GENERIC_READ*/, 3 /*SHARE READ|WRITE*/, 0, 3 /*OPEN_EXISTING*/, 0, 0);
        if (h == -1) {
            // Open failed 
        } else {
            int sz = GetFileSize(h, 0);
            if (sz > 0) {
                uchar buffer[];
                ArrayResize(buffer, sz);
                int read[1];
                ReadFile(h, buffer, sz, read, 0);
                if (read[0] == sz)
                    strFileContents = CharArrayToString(buffer, 0, read[0]);
            }
        }
        CloseHandle(h);
        return strFileContents;
    }
    /*写文件*/
    void WriteFile(string filePath,string str)
    {
       int BytesWritten[1] = {0};
       uchar WriteBuffer[];
       StringToCharArray(str, WriteBuffer);
       int FileHandle = CreateFileW(FileName, 1073741824, 3, 0, 2, 0, 0);
       WriteFile(FileHandle,WriteBuffer,StringLen(str),BytesWritten,0);
       CloseHandle(FileHandle);
    }
  • 相关阅读:
    Java实现蓝桥杯突击战
    Java实现蓝桥杯突击战
    Java实现蓝桥杯勇者斗恶龙
    Java实现蓝桥杯勇者斗恶龙
    利用cmake来搭建开发环境
    cmake总结
    cmake手册详解----转
    Boost::filesystem 使用小笔记
    Boost学习之可移植路径操作--filesystem
    C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem
  • 原文地址:https://www.cnblogs.com/wzlmzy/p/4505938.html
Copyright © 2011-2022 走看看