Lengthof伪指令的疑惑
											如题:Lengthof伪指令的疑惑  我在模块1的文件定义的变量(数组),在模块2文件中 用lengthof strMsg 返回的是1 无法返回长度
但是我在 主模块返回 28 没有任何问题。
还有我将改为 strMsg 地址传入 用pMsg 模块2 过程的形参pMsg 来接受然后改为 mov eax,lengthof pMsg 这句,也是返回1
百思不得其解,这是怎么回事啊?
这是主模块文件:
public strMsg ;允许外部模块访问
.data
strMsg byte "Please enter a size of stack to create: "
.code
..........
模块文件2:
extern strMsg:byte ;说明为是外部模块定义的变量
.code
DisplayMsg proc pMsg:dword
LOCAL @stdHandle:dword
LOCAL @Reallbyte:dword
mov eax,lengthof strMsg 这返回1,不知道怎么回事
改为 mov eax,lengthof pMsg 这句也是返回1
endp DisplayMsg

											
	    
  我忽略了编译的问题。  是因为外部模块要需要独立编译的(MASM32手工编译),所以你在编译这个(模块2文件)引用外部变量的时,sizeof或lengthof是无法得知该全局变量的初始化造成的,因为他们是伪指令,要编译时候要确定其值,所以主模块中被引用的全局变量还没被编译,所以模块2引用他的时候编译时,这个全局变量的值是无法得知的(长度)。 