C++

Details of dll dynamic library development and call and file read and write small procedures


Detail dll dynamic library development and call and file read and write small procedures

First let’s learn 1 under dynamic library calls, first find the dynamic library. dll and. lib file and import it into the homologous file under the same level of the folder, and then added to the header files, and right-click on the project, and then click on the link, link to our lib file (1 set if full name including extension), and then we can call the dynamic library function.

Dll is our specific function, lib is our function description file.

#include <stdio.h>
#include <stdlib.h>
/*
   This code is the use of file read and write operations
*/
#pragma warning(disable:4996)
#define MAX_DATA_LEN 4096
// The encryption function
int FileSymEnc(char * from, char * to);

void main() {

  char * from = "C:/Users/Administrator/Desktop/ Copy of structures .docx";
  char * to = "C:/Users/Administrator/Desktop/ Copy problems with replica structures .docx";
  // The following function is called to read and write the file
  int re = FileSymEnc(from, to);
  if (re == 0) {
    printf(" File read/write error! ");
  }
  system("pause");
}

int FileSymEnc(char * from, char * to) {
  // Returns a value to determine the execution status ,-0 On behalf of the failure ,1 On behalf of success
  int re = 1;
  // Write a few
  int writtenLen = 0;
  // I'm going to write a few
  int plainlen = 0;
  // Allocation in the heap area 4k Memory space
  unsigned char * buff = malloc(MAX_DATA_LEN);
  buff = memset(buff, 0, MAX_DATA_LEN);
  FILE * f = fopen(from, "rb");
  FILE * t = fopen(to, "wb");
  if (f == NULL) {
    printf(" Error opening read file! ");
    goto END;
  }
  if (t == NULL) {
    printf(" Open write file error! ");
    goto END;
  }

  while (!feof(f))
  {

    writtenLen = fread(buff, 1, MAX_DATA_LEN, f);
    // Read whether the end of the file has been read, and if so, jump out of the loop
    if (feof(f))
    {
      plainlen = writtenLen;
      break;
    }

    if (writtenLen != MAX_DATA_LEN) {
      // Failed to read
      printf(" File reading failed! ");
      re = 0;
      goto END;
    }
    // Read the file successfully
    writtenLen = fwrite(buff, 1, MAX_DATA_LEN, t);
    if (writtenLen != MAX_DATA_LEN) {
      printf(" File write failed! ");
      re = 0;
      goto END;
    }
  }

  // It can't be handled outside 4K We don't have to do extra small data reads and writes, but it has something to do with the way we encrypt
  writtenLen = fwrite(buff, 1, plainlen, t);
  if (writtenLen != plainlen) {
    printf(" File write failed! ");
    re = 0;
    goto END;
  }

END:
  // Heap allocated memory is freed
  if (buff != NULL) {
    free(buff);
    buff = NULL;
  }
  // Close the file

  if (f != NULL) {
    fclose(f);
    f = NULL;
  }
  if (t != NULL) {
    fclose(t);
    f = NULL;
  }
  return re;
}

If you have any questions, please leave a message or come to the site community to exchange discussion, thank you for reading, hope to help you, thank you for your support of the site!