这是典型对.net构架不理解造成的!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网站空间、营销软件、网站建设、邵武网站维护、网站推广。
只要是.net编程,一定使用的是.net类库,必须是同运行版本的.net支持方可运行。而所谓的vb.net只是说编程的语言层使用的是vb语言而已。该语言在.net构架下被编译成为IL语言(MSIL,严格说来是IL的一个子集)。而上层的语言只是产生软件时所使用的一个不同语言规则而已,与IL已经没有任何相关性了。上层语言无论是C#还是VB,甚至是Java(J#)均只适应编程人员的一个策略,与整个构造没有多大的相关性。
.net的最终目的就是让不同的语言编程人员能协同工作,那么语言在其中的区别没有多大了,所有的运行核心都是由.net完成的,没有必须依赖于.net。这是没有任何疑问的。
vb.net就是.net,只是表示用VB语言人的称呼,用C#的则称其为C#.net,但不管是哪种,它是无法脱离.net的。
vb.net只要能调用API函数CallWindowProc就可以。
汇编码用Byte或Long数组储存,如果下标为0,那么你就可以:
Call CallWindowProc(数组(0),0,0,0,0)
然后把4个0 POP出去,中间是你要执行的汇编码,汇编码最后是
ret等返回的。
VB 我不熟,下面是用汇编写的,我运行过可以的。
//--------------------------------
.model small
.586
.stack
.code
idstring db 49 dup('$')
start:
mov ax,@code
mov ds,ax
lea di,idstring
mov eax,80000002h
cpuid
mov dword ptr [di],eax
mov dword ptr [di+4],ebx
mov dword ptr [di+8],ecx
mov dword ptr [di+12],edx
mov eax,80000003h
cpuid
mov dword ptr [di+16],eax
mov dword ptr [di+20],ebx
mov dword ptr [di+24],ecx
mov dword ptr [di+28],edx
mov eax,80000004h
cpuid
mov dword ptr [di+32],eax
mov dword ptr [di+36],ebx
mov dword ptr [di+40],ecx
mov dword ptr [di+44],edx
mov ah,09h
lea dx,idstring
int 21h
mov ah,4ch
int 21h
end start
//-------------------------------------------------------
程序确实可以执行,输出CPU的ID等信息。
注意:DOS下或MS-DOS下使用。