From: Alessio Brizi on 29 Jan 2010 12:30 Hi, I have a 32-bit software that functioned well, but after upgrading my hardware, I wanted to transform this software in his 64-bit version. It all works except for the parameters passing to an Assembler dll that I wrote (even this is ported to 64-bit) Here is the code: VB: Private Declare Sub SUBLONG5 Lib "Codes64" (ByRef i1 As Long, ByVal cm As Long, ByRef c1 As Long, ByRef y1 As Long, ByRef p As Long, ByVal cmm As Long, ByRef c As Long) .... 'All parameters are long-type Call SUBLONG5(i1(j1m), cm, c1, y1, p(mi), cmm, c(mi)) .... Assembler: SUBLONG5 FRAME i1,cm,c1,y1,p,cmm,cc mov rax,[rsp+40] ; [y1] mov rbx,[rax] mov rdi,[rsp+16] ; [i1] mov rsi,[rdi+rbx*8] ; mov x1,i1(y1) mov [rax],rsi mov rax,[rsp+32] mov [rax],rdi ret SUBLONG5 ENDF The problem is in the passage of the array parameters. I pass them ByRef because the entire Assembler procedure needs to iterate through their elements, but with debugger I noticed that the values I read are not correct. Is there an issue with the VB.NET array representation in memory? Or it is an issue of copying values to the stack? Alessio
From: Mike Williams on 29 Jan 2010 18:07 On 29 Jan, 17:30, "Alessio Brizi" <alessio.br...(a)gmail.com> wrote: > I have a 32-bit software that functioned well, but > after upgrading my hardware, I wanted to transform > this software in his 64-bit version. It all works > except for the parameters passing to an Assembler > dll that I wrote. The problem is in the passage of > the array parameters. Is there an issue with the > VB.NET array representation in memory? This is a Classic VB newsgroup (VB6 and earlier versions). The product you are using is a very different product. There are a few odd exceptions, but in general VB6 code does not work in VB.Net and VB.Net code does not work in VB6. They are as different as chalk and cheese. Unfortunately, in order to deliberately confuse the punters and to maximize profits, Micro$oft sprinkled their new and otherwise completely different product with some Basic sounding constructs and gave it a Basic sounding name, so it is not surprising that you have been taken in by their subterfuge and have posted to the wrong group. Micro$oft would never openly acknowledge this of course, but they have tacitly admitted to it by creating a new and completely different newsgroup on their own public servers for their new and completely different product. To summarise, this comp.lang.basic.visual.misc newsgroup is for VB6 and earlier versions. If you have questions about the imposter then you should post them to the imposter's own newsgroup at: microsoft.public.dotnet.languages.vb Mike
From: Alessio Brizi on 1 Feb 2010 06:57 Ok, thank you and sorry fotr the mistake Alessio "Mike Williams" <gagamomo(a)yahoo.co.uk> wrote in message news:bf1d7366-6594-485e-b9ae-33e58b07927d(a)k5g2000yqf.googlegroups.com... > On 29 Jan, 17:30, "Alessio Brizi" <alessio.br...(a)gmail.com> wrote: > >> I have a 32-bit software that functioned well, but >> after upgrading my hardware, I wanted to transform >> this software in his 64-bit version. It all works >> except for the parameters passing to an Assembler >> dll that I wrote. The problem is in the passage of >> the array parameters. Is there an issue with the >> VB.NET array representation in memory? > > This is a Classic VB newsgroup (VB6 and earlier versions). The product > you are using is a very different product. There are a few odd > exceptions, but in general VB6 code does not work in VB.Net and VB.Net > code does not work in VB6. They are as different as chalk and cheese. > Unfortunately, in order to deliberately confuse the punters and to > maximize profits, Micro$oft sprinkled their new and otherwise > completely different product with some Basic sounding constructs and > gave it a Basic sounding name, so it is not surprising that you have > been taken in by their subterfuge and have posted to the wrong group. > Micro$oft would never openly acknowledge this of course, but they have > tacitly admitted to it by creating a new and completely different > newsgroup on their own public servers for their new and completely > different product. To summarise, this comp.lang.basic.visual.misc > newsgroup is for VB6 and earlier versions. If you have questions about > the imposter then you should post them to the imposter's own newsgroup > at: > > microsoft.public.dotnet.languages.vb > > Mike > >
|
Pages: 1 Prev: Reading sectors (MBR) from USB memory stick Next: Form Resize |