Click here to Skip to main content
15,886,788 members
Articles / Desktop Programming / Win32

How to do CreateFileMapping in a C++ DLL and access it in C#, VB and C++

Rate me:
Please Sign up or sign in to vote.
5.00/5 (8 votes)
10 Mar 2009CPOL 82.9K   2.2K   57  
This is yet another example for memory mapped files. What is cool though is unlike other samples, I have a SetData(TCHAR* Key, TCHAR* value) / GetData(TCHAR* key) pattern here.
Imports System.Runtime.InteropServices

Public Class Form1
    Public Declare Unicode Sub SetValue Lib "sharedmem.dll" (ByVal key As String, _
                                                          ByVal value As String)

    Declare Unicode Function GetValue Lib "sharedmem.dll" (ByVal key As String) As IntPtr

    Declare Auto Function GetRecordCount Lib "sharedmem.dll" () As Integer


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SetValue(TextBox1.Text, TextBox2.Text)
        LinkLabel1_LinkClicked(Nothing, Nothing)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        TextBox2.Text = Marshal.PtrToStringUni(GetValue(TextBox1.Text))
    End Sub

    Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        LinkLabel1.Text = "Record Count = " + GetRecordCount().ToString()
    End Sub
End Class

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions