一个asp调用com组件的问题折腾了好几天了
我的动态连接库名为 dll4C.dll
对象名为mydll
接口为Imydll
一个接口成员函数 multiply
这个DLL够简练的了吧
详细的你可以看我的idl文件:
// dll4C.idl : IDL source for dll4C.dll
//
// This file will be processed by the MIDL tool to
// produce the type library (dll4C.tlb) and marshalling code.
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(3816A4EF-811E-4256-919C-11C0948C29B9),
dual,
helpstring("Imydll Interface"),
pointer_default(unique)
]
interface Imydll : IDispatch
{
[id(1), helpstring("method multiply")] HRESULT multiply([in] int ifirst,[in] int isecond,[out] int* result);
};
[
uuid(9F9B2442-FDC2-45E0-9E20-FB6CC1F96F13),
version(1.0),
helpstring("dll4C 1.0 Type Library")
]
library DLL4CLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(5306FB3B-1509-4CAD-A989-43DCA0AF28F1),
helpstring("mydll Class")
]
coclass mydll
{
[default] interface Imydll;
};
};
我不会写调用这个组件的asp
我写了一部分的asp文件如下:(哪位高手给补充完整,最关键的部分是如何调用)
<%@ Language=VBScript %>
<html>
<head>
<title>ASP调用COM</title>
</head>
<body>
<font face="宋体">
<FORM NAME="TextCheckbox Example" METHOD="GET" ACTION="text.asp">
<H3>此处演示如何用ASP调用COM组件:</H3>
<p>
<table>
<tr>
<td><font face="宋体">乘数一(必需)</td>
<td><INPUT TYPE="TEXT" NAME="add1" VALUE="" SIZE="20" MAXLENGTH="150"></td>
</tr>
<tr>
<td><font face="宋体">乘数二(必需)</td>
<td><INPUT TYPE="TEXT" NAME="add2" VALUE="" SIZE="20" MAXLENGTH="150"></td>
</tr>
</table>
</p>
<p>
<INPUT TYPE="SUBMIT" VALUE="提交">
<INPUT TYPE="RESET" VALUE="清除表单">
</p>
</form>
<%
'检查是否存在输入信息。
dim add1, add2, sum,add
add1 = Request.QueryString("add1")
add2 = Request.QueryString("add2")
'显示输入的信息。
If ("" = add1) OR ("" = add1) Then
Response.Write "<P>(尚未输入必需的信息。)</P>"
%>
<%Else
On Error Resume Next
Set add = server.CreateObject("dll4C.mydll")
if Err.Number <> 0 then
response.write "call dll4c.mydll failed "
response.clear
end if
'☆★☆★★★★★请在这里补充调用multiply的语句
End If
%>
结果是 <% = sum %>
</body>
</html>
高手们,这个东西,我试了好几天了,一直不会写,都快没信心了