Error: Calling C++ dll function in C#

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 Hi,<br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 I am trying to use functions in C++ dll from C#, but I got an error: " attempt to read or write protected
memory. This is often indication that other memory is corrupt" <span style="text-decoration:underline (At the last line) <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 Anyone know how to fix ?<br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 Here is C++ functions:<br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<pre style="background-color:#fbedbb; padding:6px; font-size:9pt; line-height:normal; font-family:Consolas,Courier New,Courier,mono; white-space:pre-wrap; border:1px solid rgb(251,237,187); word-wrap:break-word typedef <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue void *DGNHandle;

__declspec(dllexport) DGNHandle CPL_DLL DGNOpen( <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue const <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue char *, <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int );
__declspec(dllexport) DGNElemCore CPL_DLL *DGNReadElement( DGNHandle )
[/code]
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 Here is structure in C++:<br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<pre style="background-color:#fbedbb; padding:6px; font-size:9pt; line-height:normal; font-family:Consolas,Courier New,Courier,mono; white-space:pre-wrap; border:1px solid rgb(251,237,187); word-wrap:break-word <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue typedef <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue struct {
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int offset;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int size;

<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int element_id; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Element number (zero based) */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int stype; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Structure type: (DGNST_*) */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int level; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Element Level: 0-63 */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int type; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Element type (DGNT_) */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int complex; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Is element complex? */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int deleted; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Is element deleted? */

<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int graphic_group; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Graphic group number */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int properties; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Properties: ORing of DGNPF_ flags */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int color; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Color index (0-255) */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int weight; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Line Weight (0-31) */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int style; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Line Style: One of DGNS_* values */

<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int attr_bytes; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Bytes of attribute data, usually zero. */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue unsigned <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue char *attr_data; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Raw attribute data */

<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int raw_bytes; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; Bytes of raw data, usually zero. */
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue unsigned <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue char *raw_data; <span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic /*<span class="x_code-comment" style="margin:0px; padding:0px; border:0px; color:#008000; font-style:italic !&lt; All raw element data including header. */
} DGNElemCore; [/code]
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 And below converted codes are in C#:<br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<pre style="background-color:#fbedbb; padding:6px; font-size:9pt; line-height:normal; font-family:Consolas,Courier New,Courier,mono; white-space:pre-wrap; border:1px solid rgb(251,237,187); word-wrap:break-word [StructLayout(LayoutKind.Sequential )]
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue class DGNElemCore
{
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int attr_bytes;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public byte[] attr_data;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int color;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int complex;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int deleted;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int element_id;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int graphic_group;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int level;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int offset;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int properties;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int raw_bytes;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public byte[] raw_data;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int size;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int style;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int stype;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int type;
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int weight;

}[/code]
<pre style="background-color:#fbedbb; padding:6px; font-size:9pt; line-height:normal; font-family:Consolas,Courier New,Courier,mono; white-space:pre-wrap; border:1px solid rgb(251,237,187); word-wrap:break-word [DllImport(<span class="x_code-string" style="margin:0px; padding:0px; border:0px; color:purple "<span class="x_code-string" style="margin:0px; padding:0px; border:0px; color:purple DgnLib.dll", EntryPoint = &quot;DGNOpen&quot;)]
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue static <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue extern <span class="x_code-SDKkeyword" style="margin:0px; padding:0px; border:0px; color:#339999 IntPtr DGNOpen(string fileName, <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue int bUpdate);
[DllImport(<span class="x_code-string" style="margin:0px; padding:0px; border:0px; color:purple "<span class="x_code-string" style="margin:0px; padding:0px; border:0px; color:purple DgnLib.dll", EntryPoint = <span class="x_code-string" style="margin:0px; padding:0px; border:0px; color:purple "<span class="x_code-string" style="margin:0px; padding:0px; border:0px; color:purple DGNReadElement")]
<span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue public <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue static <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue extern DGNElemCore DGNReadElement(<span class="x_code-SDKkeyword" style="margin:0px; padding:0px; border:0px; color:#339999 IntPtr DGNHandle)[/code]
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 Codes for testing:<br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<span style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2 <br style="color:#111111; font-family:Segoe UI,Arial,sans-serif; font-size:13.60000228881836px; line-height:normal; background-color:#fff9e2
<pre style="background-color:#fbedbb; padding:6px; font-size:9pt; line-height:normal; font-family:Consolas,Courier New,Courier,mono; white-space:pre-wrap; border:1px solid rgb(251,237,187); word-wrap:break-word DGNElemCore element = <span class="x_code-keyword" style="margin:0px; padding:0px; border:0px; color:blue new DGNElemCore();
element = DgnFile.DGNReadElement(dgnFile.oDgnFile) [/code]

View the full article
 
Back
Top