Проект API GetTempPath выдает ошибку AccessViolationException - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую

, пытаюсь определить путь к временной папке Windows через API GetTempPath. Вот наработки, но постоянно выдает ошибку:

AccessViolationException

с указанием на запуск формы. Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

Visual Studio 2010.

Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Runtime.InteropServices;
  10. namespace WindowsFormsApplication6
  11. {
  12. public partial class Form1 : Form
  13. {
  14. [DllImport("kernel32.dll")]
  15. static extern int GetTempPath(uint nBufferLength, out StringBuilder lpBuffer);
  16. public Form1()
  17. {
  18. InitializeComponent();
  19. }
  20. private void button1_Click_1(object sender, EventArgs e)
  21. {
  22. uint d = 4096;
  23. StringBuilder StrBuild = new StringBuilder();
  24. GetTempPath(d, out StrBuild);
  25. textBox1.Text = StrBuild.ToString();
  26.  
  27. textBox2.Text = System.IO.Path.GetTempPath(); //чтобы проверить путь, через него, к сожалению, нельзя
  28. }
  29. }
  30. }

Решение задачи: «Проект API GetTempPath выдает ошибку AccessViolationException»

textual
Листинг программы
  1.         [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
  2.         static extern Int32 GetTempPath(Int32 nBufferLength, [Out] StringBuilder lpBuffer);
  3.  
  4.             StringBuilder buffer = new StringBuilder(261);
  5.             if (GetTempPath(buffer.Capacity, buffer) == 0)
  6.                 throw new Win32Exception(Marshal.GetLastWin32Error());

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут