在vc上建了一个工程,
里面有段程序是 根据页面(http://..../index.html)(在服务器A上)的上存在的值进行下一步工作,比如:判断一个页面上存在一个字符串allow,那么程序继续,假如存在一个字符串deny,那么程序结束。之后,这个vc工程生成一个dll文件.
在某台服务器B上进行注册这个dll文件之后,可以正常使用,
就是假如index.html页面上存在allow,那么服务器B可以使用,进行下一步工作
假如index.html页面上存在deny,那么服务器B不能继续下一步工作。问题来了
我现在index.heml所在的服务器A上更改过,把字符串allow变成deny,重启过这台服务器A之后,事实上index.html页面上已经不存在allow字符串了,那么服务器B应该就不能继续下一步工作才对。
事实上,只有重启过服务器B之后,这个dll文件才起作用。怎么样才能不启动服务器B,让dll文件动态起作用呢?可以这样的吗?
里面有段程序是 根据页面(http://..../index.html)(在服务器A上)的上存在的值进行下一步工作,比如:判断一个页面上存在一个字符串allow,那么程序继续,假如存在一个字符串deny,那么程序结束。之后,这个vc工程生成一个dll文件.
在某台服务器B上进行注册这个dll文件之后,可以正常使用,
就是假如index.html页面上存在allow,那么服务器B可以使用,进行下一步工作
假如index.html页面上存在deny,那么服务器B不能继续下一步工作。问题来了
我现在index.heml所在的服务器A上更改过,把字符串allow变成deny,重启过这台服务器A之后,事实上index.html页面上已经不存在allow字符串了,那么服务器B应该就不能继续下一步工作才对。
事实上,只有重启过服务器B之后,这个dll文件才起作用。怎么样才能不启动服务器B,让dll文件动态起作用呢?可以这样的吗?
然后在TIMER事件里判断
哪里 尝试动态连接???
这个dll需要注册,那我估计是个com。
A要远程调用,那我估计是个DCOM。
那么,为什么要阻止dll加载到内存?为什么不限制A的调用?
A只是指http://.../index.html静态页面所在的服务器而已
总之就是一dll文件,生成这个dll文件的源码里面需要判断index.html源码里是否存在某一字符串,dll文件在服务器B注册(regsv32)之后,我修改了index.html文件的字符串,但是dll文件没有动态的根据index.html的变化而改变。
/*调用动态dll*/
typedef void(__cdecl *TESTDLL)(CurrentData str);//str动态库参数
HINSTANCE hmod; /*调入动态库*/
hmod = ::LoadLibrary("mfcdll.dll"); if (hmod == NULL)
{
AfxMessageBox("Fail");
} TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress(hmod, "Show");//Show为动态库里的函数名 if (lpproc != (TESTDLL)NULL)
{
/*执行动态库中的函数,传递参数,打开窗体*/
(*lpproc)(cd);
} FreeLibrary(hmod);
应当是HTML文件本地缓存导致的,解决的方法是不再使用WEB页面缓存,这个哪里设置的?
看了一下你的代码,应该是指动态引用 dll文件的程序我的意思是指,这个dll文件中的一段程序是:
首先获取网页的html内容,用CString.find去查找是否存在allow或者deny字符串
有allow则赋值i=1,有deny则赋值i=0;然后根据i的值进行下一步工作。这个dll文件在服务器上注册(regsvr32 ...dll)使用,而不是其他的代码程序去动态调用此dll中的函数。现在问题就是 我把这个html更改过,把allow字符串改为deny,i还是为1,而不是为0。
说明获取网页的html内容的时候,没有去html服务器上进行重新读取,可能是用了缓存之类的,
Internet 属性-Internet临时文件-设置 已经是设置为每次检查了.... 还是有其他设置的?看一下我获取网页内容的代码:IXMLHTTPRequestPtr httpRes;
::CoInitialize(httpRes);
HRESULT hr = httpRes.CreateInstance("Msxml2.XMLHTTP.3.0");
try{
httpRes->open("Get", _bstr_t(url), false, "", "");
httpRes->send();
}是不是执行两次这段代码的时候,第二次会不会是从缓存上读取的?而不是再从服务器上读取?
=======================================
兄弟客气了给个思路,你看可行不可行使用timer事件
每次执行的时候都重新从服务器上获取数据,不过以前的缓存数据一定要清空
然后执行相关操作
应该没什么问题了