C ++ DLLをC#コードと通信させたいのですが、動作させることができません。C#テキストボックスに印刷するには、C ++DLLから「printf」メッセージをインポートする必要があります。それはうまくいきますそれは私にとっては問題ありません誰かが私を導くことができますか?私の主な優先事項は、C#がC ++DLLの「printf」関数を印刷できることです。C++DLLコードですが、コードはCとしてコンパイルされます。
ReceiverInformation()
{
//Initialize Winsock version 2.2
if( WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
{
printf("Server: WSAStartup failed with error %ld\n", WSAGetLastError());
return -1;
}
else
{
printf("Server: The Winsock DLL status is %s.\n", wsaData.szSystemStatus);
// Create a new socket to receive datagrams on.
ReceivingSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (ReceivingSocket == INVALID_SOCKET)
{
printf("Server: Error at socket(): %ld\n", WSAGetLastError());
// Clean up
WSACleanup();
// Exit with error
return -1;
}
else
{
printf("Server: socket() is OK!\n");
}
}
}
これはC#コードです。C++ DLLをインポートしようとしましたが、コードから作成されたサンプルコードで何をすべきかを誰かが指摘できます。
public partial class Form1 : Form
{
[DllImport(@"C:\Users\Documents\Visual Studio 2010\Projects\Server_Receiver Solution DLL\Debug\Server_Receiver.dll", EntryPoint = "DllMain")]
private static extern int ReceiverInformation();
private static int ReceiverInformation(IntPtr hWnd)
{
throw new NotImplementedException();
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//textBox1.Text = "Hello";
this.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}