Я немного новичок в том, что касается C #, и я буквально не знаю, в чем здесь ошибка ...
using System;
using System.Windows.Forms;
namespace Sancarn
{
public class Form1 : Form
{
public event EventHandler MessageHandler;
public Message lastMessage;
public string ptrToString(ptr As IntPtr)
{
return Marshal.PtrToStringAnsi(ptr);
}
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
protected override void WndProc(ref Message m){
EventHandler handler = MessageHandler;
lastMessage = m;
if(null != MessageHandler) MessageHandler(this,EventArgs.Empty);
base.WndProc(ref m);
}
}
}
Когда я пытаюсь добавить это как новый тип в powershell, я получаю следующие ошибки:
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : ) expected
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(10) :
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : >>> public string ptrToString(ptr As IntPtr)
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
I...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : Invalid token ')' in class, struct, or interface member declaration
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(10) :
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(11) : >>> public string ptrToString(ptr As IntPtr)
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : Invalid token '(' in class, struct, or interface member declaration
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : >>> return Marshal.PtrToStringAnsi(ptr);
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(14) : }
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : Invalid token ')' in class, struct, or interface member declaration
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(12) : {
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(13) : >>> return Marshal.PtrToStringAnsi(ptr);
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(14) : }
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(17) : Expected class, delegate, enum, interface, or struct
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(16) : [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
Name="FullTrust")]
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(17) : >>> protected override void WndProc(ref Message m){
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(18) : EventHandler handler = MessageHandler;
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(26) : Type or namespace definition, or end-of-file expected
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(25) : }
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(26) : >>> }
...
Add-Type : c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(16) : The modifier 'override' is not valid for this item
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(15) :
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(16) : >>> [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
Name="FullTrust")]
c:\Users\sancarn\AppData\Local\Temp\vqezctgu.0.cs(17) : protected override void WndProc(ref Message m){
...
Так что я не совсем уверен, что здесь происходит. С моей точки зрения, все скобки правильно спарены ... Я понял, что если я закомментирую объявление ptrToString
, класс скомпилируется нормально ... Так что я уверен, что это объявление как-то виновато ошибка, но ... Либо я слепой, что-то упустил, либо в этом утверждении нет ничего плохого ...?
public string ptrToString(ptr As IntPtr){
return Marshal.PtrToStringAnsi(ptr);
}