Win32 API를 사용하여 직렬 포트에 연결하기위한 자체 작은 라이브러리를 작성하려고합니다. 불행히도 내가 찾은 sample code은 kernel32.dll (내가 할 수있는)을 사용하지만 createFile 명령은 접두어 win32Com을 사용합니다.이 접두사는 내가 사용해야하는 일부 네임 스페이스의 일부입니다. 불행히도 나는 그것을 이해할 수없고, 멍청한 놈이기 때문에 이것이 내가 포함 할 필요가있는 참조인지 아닌지 알아내는 방법을 모른다.win32Com 사용 (현재 컨텍스트에 존재하지 않음)
누구든지이 작업을 수행하는 방법을 설명하는 샘플 코드를 알려줄 수 있습니까? 또는 내가 어디로 잘못 가고 있는지 말해 주시겠습니까? 내 '사용'섹션과 DllImport뿐만 아니라 아래 파일을 만들려고 노력하고 있습니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.IO.Ports;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
좀 더 코드가 양식을 초기화 여기에있다 등
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern IntPtr CreateFile(String lpFileName,
UInt32 dwDesiredAccess, UInt32 dwShareMode,
IntPtr lpSecurityAttributes, UInt32 dwCreationDisposition,
UInt32 dwFlagsAndAttributes, IntPtr hTemplateFile);
하지만 다음을 사용할 때, 나는 오류 얻을 : 난 The name 'Win32Com' does not exist in the current context.
hPort = Win32Com.CreateFile(cs.port,
Win32Com.GENERIC_READ | Win32Com.GENERIC_WRITE, 0, IntPtr.Zero,
Win32Com.OPEN_EXISTING, Win32Com.FILE_FLAG_OVERLAPPED,
IntPtr.Zero);
을 이것이 내가하고있는 간단한 실수이지만, 불행하게도 나는이 시점에서 스킬 셋을 찾지 못했다.
미리 감사드립니다.
호기심에서 벗어나 System.IO.Ports.SerialPort를 사용할 수없는 이유는 무엇입니까? http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx –
그건 내가 역사적으로 한 일이다. 불행하게도 System.IO.Ports.SerialPort는 아주 잘 수행되지 않았다. 즉, 하드웨어의 약 75 %에서만 작동합니다. [여기 내 스레드] (http://stackoverflow.com/questions/14885288/io-exception-error-when-using-serialport-open) 및 [내 다른 하나의] (http://stackoverflow.com/questions/) 15014137/how-to-ignore-an-exception-and-complete-the-try) 이유를 설명하십시오. 매우 실망 스럽지만이 질문을 게시하는 이유를 설명합니다. – tmwoods