Click here to Skip to main content
16,004,778 members
Home / Discussions / C#
   

C#

 
Questionsizeof Pin
dino20945-Sep-07 8:26
dino20945-Sep-07 8:26 
AnswerRe: sizeof Pin
TJoe5-Sep-07 8:50
TJoe5-Sep-07 8:50 
GeneralRe: sizeof Pin
Luc Pattyn5-Sep-07 10:02
sitebuilderLuc Pattyn5-Sep-07 10:02 
GeneralRe: sizeof Pin
TJoe5-Sep-07 10:19
TJoe5-Sep-07 10:19 
GeneralRe: sizeof Pin
dino20945-Sep-07 11:54
dino20945-Sep-07 11:54 
QuestionProblem passing data to an activeX Pin
Paolo Vernazza5-Sep-07 6:55
Paolo Vernazza5-Sep-07 6:55 
AnswerRe: Problem passing data to an activeX Pin
TJoe5-Sep-07 8:23
TJoe5-Sep-07 8:23 
GeneralRe: Problem passing data to an activeX Pin
Paolo Vernazza6-Sep-07 1:57
Paolo Vernazza6-Sep-07 1:57 
It doesn't work Frown | :(

Your code works, but it stops if I use different unmanaged memory areas when storing and when retrieving or if I change the data in the unmanaged memory.

For example, this code doesn't work:

<br />
// Create buffer<br />
Int32[] buffer = new Int32[10];<br />
buffer[5] = 1;<br />
<br />
// Allocate and copy to unmanaged memory<br />
IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Int32)) * 10);<br />
Marshal.Copy(buffer, 0, ptr, 10);<br />
<br />
// **** Need to add this, otherwise c# complains about not being able to convert IntPtr to int<br />
int bptr = (int)ptr;<br />
ocx.PutData(ref bptr, Marshal.SizeOf(typeof(Int32)) * 10);<br />
<br />
// Change buffer, so we can see that the ptr has restored the<br />
//   old value<br />
buffer[5] = 2;<br />
<br />
// **** Allocate another are to retrieve data<br />
IntPtr ptr2 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Int32)) * 10);<br />
int bptr2 = (int)ptr2;<br />
<br />
ocx.GetData(ref bptr2);<br />
// **** Here there is the problem: when GetData() returns, <br />
// the bptr2 variable has been changed and its value is = bptr = (int ptr) <br />
<br />
// Copy from unmanged memory back to array<br />
Marshal.Copy(ptr2, buffer, 0, 10);<br />
<br />
// Free memory, or else we will leak it<br />
Marshal.FreeHGlobal(ptr);<br />
Marshal.FreeHGlobal(ptr2);<br />

GeneralRe: Problem passing data to an activeX Pin
TJoe6-Sep-07 2:13
TJoe6-Sep-07 2:13 
GeneralRe: Problem passing data to an activeX Pin
Paolo Vernazza6-Sep-07 4:33
Paolo Vernazza6-Sep-07 4:33 
GeneralRe: Problem passing data to an activeX Pin
TJoe6-Sep-07 5:08
TJoe6-Sep-07 5:08 
QuestionHow to limit maximum size of other windows? Pin
Trickster-SWE5-Sep-07 6:33
Trickster-SWE5-Sep-07 6:33 
AnswerRe: How to limit maximum size of other windows? Pin
TJoe5-Sep-07 8:06
TJoe5-Sep-07 8:06 
GeneralRe: How to limit maximum size of other windows? Pin
Trickster-SWE5-Sep-07 22:33
Trickster-SWE5-Sep-07 22:33 
QuestionRegex replace question Pin
Vodstok5-Sep-07 6:13
Vodstok5-Sep-07 6:13 
AnswerRe: Regex replace question Pin
TJoe5-Sep-07 8:00
TJoe5-Sep-07 8:00 
Questionrow doesn't get deleted Pin
gericooper5-Sep-07 5:27
gericooper5-Sep-07 5:27 
QuestionVisual Studio Menu Layout Pin
DanB19835-Sep-07 5:13
DanB19835-Sep-07 5:13 
AnswerRe: Visual Studio Menu Layout Pin
martin_hughes5-Sep-07 5:54
martin_hughes5-Sep-07 5:54 
QuestionForm problem Pin
sajid.salim.khan5-Sep-07 4:52
sajid.salim.khan5-Sep-07 4:52 
AnswerRe: Form problem Pin
Christian Graus5-Sep-07 5:07
protectorChristian Graus5-Sep-07 5:07 
GeneralRe: Form problem Pin
sajid.salim.khan5-Sep-07 5:53
sajid.salim.khan5-Sep-07 5:53 
GeneralRe: Form problem Pin
Christian Graus5-Sep-07 8:26
protectorChristian Graus5-Sep-07 8:26 
QuestionExcel Layout change Pin
ramdil5-Sep-07 4:34
ramdil5-Sep-07 4:34 
QuestionRead only row in Datagrid Pin
André Stroebel5-Sep-07 4:11
André Stroebel5-Sep-07 4:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.