追问def有关问题

追问def问题?
本帖最后由 codeck 于 2014-10-25 15:46:20 编辑
变量赋值时  =:: 和 = 有什么区别?我在一个正常代码中发现下面两种写法都正常。


hinst=LoadLibrary(_T("Hook.dll"));
hAddDll=::LoadLibrary(_T("Add.dll"));


继昨天的得分def问题后(http://bbs.****.net/topics/390911758)在今天的实例中,小弟又遇到新问题:
今天的DEF格式如下,为什么这里不需要跟  "@1;"  也能正常执行呢?

EXPORTS
InstallHook

同时在这个MFC DLL中,声明InstallHook时没有在前面使用WINAPI,而昨天的Add函数确需要WINAPI.

万分感谢。
------解决思路----------------------
引用:
Quote: 引用:

第一个问题你只要知道::的作用就ok了:
...

小弟还是有点不太明白,我们在定义变量时就会设置静态变量或局部变量,那么对一个静态变量使用=赋值跟使用=::赋值有什么区别咧?
“=::LoadLibrary(_T("Add.dll"));”与“=LoadLibrary(_T("Add.dll"));”的能否给个直观的理解?
非常感谢。

关键不在与=,与=无关,::决定调用的是那个函数;你可以自己写写;
给你个例子,以后可以自己尝试下写个代码:
#include <iostream>
using namespace std;
void show()
{
cout<<"this is ::"<<endl;
}
class test
{
public:
void show()
{
cout<<"this is no ::"<<endl;
}
void pri()
{
show();
::show();
}
};
int main()
{
test t;
t.pri();
}