开发为创业打下扎实的基石

深呼吸

导航

求教一个关于VS2005使用VC++创建一个ALT Project项目,但Web页面调用不成功这个项目的某个方法.

大家好!
我是一个VC++的陌生者,但最近公司开发的项目中,有一个要求要用到OCX控件,即某个WEB页面要调整OCX的某个方法来启动系统的某个进程。

今天我找了一些资料并动手做了一下,有的做成功了,但有的失败,即WEB没有办法调用,我不青楚那里错了。如果边位看到并有时间,麻烦帮我看看。

首先我参照http://www.codeproject.com/KB/atl/com_atl.aspx,我下载了这个页面的源码,并作了一些修正,使Test_ALT控制台程序可以跑起来,
我修正后的源码:https://files.cnblogs.com/Akuan/TestActivex.rar

从codeproject下载回来的源码,由于文件夹的目录改变了,因而我对Test_ATL.cpp文件的开始部分的一些代码进行了改变。这样控制台程序就可以正常运行。

然后我在原来的Simple_ATL项目中添加了一个Test.htm页面,代码如下:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
<script language="javascript">
    function doTest()
    {
        var sum;
       
        try
        {
            sum = SimpleATL.AddNumbers(3,4);
            alert(sum);
        }
        catch(e)
        {
            alert(e.Message);
        }
        finally
        {
            sum=null;
        }
    }
</script>
</HEAD>
<BODY>
<OBJECT ID="SimpleATL" CLASSID="CLSID:970599E0-2673-11D3-A8A8-00105AA943DF">
</OBJECT>
<input type="button" value="测试加法" id="btnOK" onclick="doTest();" />
</BODY>
</HTML>

其中CLASSID的值来自于Simple_ATL项目的Simple_ATL.rdl文件中

library SIMPLE_ATLLib
{
 importlib("stdole32.tlb");
 importlib("stdole2.tlb");

 [
  uuid(970599E0-2673-11D3-A8A8-00105AA943DF),
  helpstring("First_ATL Class")
 ]
 coclass First_ATL
 {
  [default] interface IFirst_ATL;
 };
};

但我打开Test.htm页面时,总是调用不成功AddNumbers方法。

如果那位对这方面比较熟悉的,麻烦帮我解决一下,谢谢。QQ:156834293.

posted on 2009-06-29 19:56  蓝海  阅读(1554)  评论(4)    收藏  举报