Итак, я следил за документацией вплоть до мельчайших деталей, и она продолжает выдавать мне следующую ошибку, когда я пытаюсь отлаживать и запускать (F5):
Обнаружен PInvokeStackImbalance. Сообщение: вызов функции PInvoke «VistaControls!VistaControls.Dwm.NativeMethods::DwmExtendFrameIntoClientArea» разбалансировал стек. Вероятно, это связано с тем, что управляемая подпись PInvoke не соответствует неуправляемой целевой подписи. Убедитесь, что соглашение о вызовах и параметры подписи PInvoke соответствуют целевой неуправляемой подписи.
Я понятия не имею, что это значит и как это исправить! Может кто-нибудь помочь? Какие-либо предложения?
Я использовал это раньше, но на этот раз это не работает. Я использую VS2010 Express C# WinForms, .NET 4 (как и раньше, когда я впервые использовал его много лет назад).
Спасибо
И да, я заметил исправление, которое человек сделал внизу этой страницы, и я исправил его, но оно все еще не работает!
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VistaControls.Dwm;
namespace One_Stop_Management
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.FillRectangles(Brushes.Black, new Rectangle[] {
new Rectangle(0, 0, this.ClientSize.Width, 30),
new Rectangle(this.ClientSize.Width - 30, 0, 30, this.ClientSize.Height),
new Rectangle(0, this.ClientSize.Height - 30, this.ClientSize.Width, 30),
new Rectangle(0, 0, 30, this.ClientSize.Height)
});
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
VistaControls.Dwm.DwmManager.EnableGlassSheet(this);
}
}
}
DwmExtendFrameIntoClientArea
, но вам нужно опубликовать определение, которое у вас есть в настоящее время, чтобы кто-нибудь сказал, что вы должны его исправить. Мое обоснованное предположение состоит в том, что вместоIntPtr
используетсяint
. - person Cody Gray   schedule 19.02.2011