vb6 앱과 .net 앱간에 데이터를 전달해야합니다. 이 데이터는 매초마다 기록되거나 읽힐 것입니다. 그것은 약 30 필드입니다. 두 앱 모두 같은 컴퓨터에 있습니다. 나는 현재이 데이터를 레지스트리를 통해 전달하고 있으며 훌륭하게 작동하지만 조금 긴장하게 만듭니다. 나는 텍스트 파일로 그것을 할 것이지만 나는 데이터 손실에 대해 걱정하고있다.VB6 앱과 .Net 앱간에 데이터 전달
가장 좋은 방법은 무엇입니까?
vb6 앱과 .net 앱간에 데이터를 전달해야합니다. 이 데이터는 매초마다 기록되거나 읽힐 것입니다. 그것은 약 30 필드입니다. 두 앱 모두 같은 컴퓨터에 있습니다. 나는 현재이 데이터를 레지스트리를 통해 전달하고 있으며 훌륭하게 작동하지만 조금 긴장하게 만듭니다. 나는 텍스트 파일로 그것을 할 것이지만 나는 데이터 손실에 대해 걱정하고있다.VB6 앱과 .Net 앱간에 데이터 전달
가장 좋은 방법은 무엇입니까?
일반적인 백엔드? 예, 레지스트리가 작동하지만 텍스트 파일은 작동하지만 다중 사용자 환경에서는 데이터베이스 (예 : MS Access 또는 SQL Server)를 사용하는 것이 좋습니다.
메일 선택, 메모리 매핑 파일, 명명 된 파이프, 소켓. 웹에는 많은 도움과 코드가 있습니다.
동일한 컴퓨터의 프로세스 간 작은 메시지 (Windows OS 모두) : MailSlots로 이동하십시오.
동일한 시스템의 프로세스간에 큰 데이터 블록 : 메모리 맵 파일로 이동하십시오.
프로세스 간의 스트리밍 메시지 (동일하거나 다른 컴퓨터, 두 Windows OS 모두) : 명명 된 파이프로 이동하십시오.
프로세스 간 스트리밍 메시지 (동일하거나 다른 컴퓨터, 동일하거나 다른 OS) : 소켓으로 이동하십시오.
이제 레지스트리를 사용하고 있기 때문에 대신 메일 슬롯을 사용하고 있습니다.
나는 Mailslots를 사용하지 않았습니다. 나에게 좋은 본보기를 가르쳐 주시겠습니까? – jocoder
@jocoder : 체크 아웃 할 곳이 두 곳 있습니다. 첫째, http://www.codeproject.com/Articles/19231/Fully-functional-Asynchronous-Mailslot-Control-in – rskar
@jocoder에서 C# 프로젝트 : 둘째, 이것은 누군가의 VB 코드이며, 대부분은 작동합니다. 문제가 있음) : http://forums.devx.com/archive/index.php/t-160327.html – rskar
실제로 메일 슬롯은 컴퓨터간에 잘 작동합니다. 400 바이트가 넘는 메시지에는 제대로 작동하지 않지만
DDE는 여전히 지원되며 매우 빠릅니다. 아마 닷넷 지원.
물론 단순한 out-of-process COM은 Windows RPC의 맨 위에있는 단순한 계층입니다.
꽤 무섭다. 이것은 레지스트리가 의도 한 것이 아닙니다. 레지스트리 하이브 조각화에 대해 들어 본 적이 있습니까? – Bob77