dll 中有初始化com组件,然后这个dll在c#中调用失败 [问题点数:40分]

Bbs2
本版专家分:162
结帖率 97.76%
Bbs2
本版专家分:309
Bbs2
本版专家分:162
Bbs2
本版专家分:309
Bbs7
本版专家分:10403
Bbs2
本版专家分:162
Bbs3
本版专家分:828
C#调用dll,是否是COM?
我学的是C#,每次我<em>调用</em>c++写的<em>dll</em>,我一直在疑惑,其是不是COM<em>组件</em>。rn我会<em>调用</em>,但对是否是COM<em>组件</em>,这概念一直很不清楚。rn请各位帮忙一下。多谢。
调用C# COM DLL问题
C#写的COMDLL函数:rn public byte[] dencrypt(byte[] by)rn rn uint M1 = 0XFAFAFAFA;rn uint IA1 = 0XF7F7F7F7;rn uint IC1 = 0XF5F5F5F5;rn rn uint key = 0x000004d2;rn int idx = 0;rn if (key == 0) key = 1;rn byte[] byy = new byte[by.Length];rn while (idx < by.Length)rn rn key = (uint)IA1 * (key % M1) + IC1;rn uint sss = (uint)by[idx];rnrn uint ms = ((key >> 20) & 0xFF);rnrn uint mss = sss ^ ms;rn byy[idx] = (byte)mss;rn rn idx++;rn rn return byy;rn rn=====================================================================rn请教各位:rnVB<em>调用</em>时,用什么变量对应C#byte类型?rn如VB也用byte变量类型,<em>调用</em>时报,DLL使用了VB不支持的数据类型。rn
.dll初始化失败
我用的是win2000专业版,上网时常常死机,结束任务没反应,自有注销是才有反应,注销之后弹出“UPEngine.EXE-<em>dll</em><em>初始化</em><em>失败</em>”,请问这问题如何解决?谢谢!
加载C#调用DLL失败
问题是。我在本机开发一个<em>调用</em>DLL程序的FORM程序。 rn下面代码引用的路径都可以指向成功! 但是在将该程序给其它机器使用的时候就提示加载DLL<em>失败</em>! rn其它机器的该路径下也有dddd.<em>dll</em><em>这个</em>动态链接库。 但是总是提示加载<em>失败</em>! 该如何解决啊??rn[DllImport(@"C:\WINDOWS\system32\dddd.<em>dll</em>")]rnrn这是VS2008运行的错误提示!rn错误提示:无法加载 DLL“C:\windows\system32\dddd.<em>dll</em>”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。rnrn这是EXE运行的错误提示的详细信息!rnrn************** 异常文本 **************rnSystem.DllNotFoundException: 无法加载 DLL“C:\winnt\system32\dddd.<em>dll</em>”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。rn 在 WindowsFormsApplication5.Form1.efport(Int32 port)rn 在 WindowsFormsApplication5.Form1.ef_add() 位置 E:\WindowsFormsApplication5\WindowsFormsApplication5\Form1.cs:行号 55rn 在 WindowsFormsApplication5.Form1.button1_Click(Object sender, EventArgs e) 位置 E:\WindowsFormsApplication5\WindowsFormsApplication5\Form1.cs:行号 352rn 在 System.Windows.Forms.Control.OnClick(EventArgs e)rn 在 System.Windows.Forms.Button.OnClick(EventArgs e)rn 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)rn 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)rn 在 System.Windows.Forms.Control.WndProc(Message& m)rn 在 System.Windows.Forms.ButtonBase.WndProc(Message& m)rn 在 System.Windows.Forms.Button.WndProc(Message& m)rn 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)rn 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)rn 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)rn
Dll还是COM组件
想写一个游戏客户端,想把不同的模块放在不同的Dll中实现,那么用一般的Dll好,还是COM<em>组件</em>合适?
关于调用dll时COM初始化的问题
我做了个excel的MFC扩展<em>dll</em>,另外编了一个主程序来<em>调用</em>它,我就想问,我有的人在<em>dll</em>中利用CoInitialize来<em>初始化</em>COM,那么能不能不在<em>dll</em>中<em>初始化</em>,而在主程序中去<em>初始化</em>。rnrn我是这么做的,在主程序中的C***App类中的InitInstance中去<em>初始化</em>,这样对不对?是不是一定要在<em>dll</em>中<em>初始化</em>啊?
JNI调用DLL的COM初始化问题
rn我用JNI去<em>调用</em>一个DLL,<em>这个</em>DLL使用了COM。rnrn我在DllMain里<em>初始化</em>COM:rnrnBOOL APIENTRY DllMain( HANDLE hModule, rn DWORD ul_reason_for_call, rn LPVOID lpReservedrn )rnrn switch (ul_reason_for_call)rn rn case DLL_PROCESS_ATTACH:rn ::CoInitialize(NULL);rn break;rnrn case DLL_PROCESS_DETACH:rnrn ::CoUninitialize();rn break;rn rn return TRUE;rnrnrn在一个DLL的导出函数connect里使用COM:rnrnJNIEXPORT void JNICALL Java_opcjni_connect(JNIEnv *e, jobject obj)rnrn //::CoInitialize(NULL); //问题来了:如果注释这句rn HRESULT hr=::CoCreateInstance(cls,NULL,CLSCTX_ALL,IID_IServer,(void**)&pServer);rn _<em>com</em>_error err(hr);rn ::MessageBox(NULL,err.ErrorMessage(),"CoInitialize",0); //则报错:COM没有<em>初始化</em>rnrnrn而我用VC++写的程序去调同一个DLL,则没有问题。想了几天,一直没有解决<em>这个</em>问题,请教大家到底是哪有问题呢?
dllcom组件区别
自己总结的,<em>dll</em>及<em>com</em><em>组件</em>区别,欢迎有需要的朋友参考
C#调用C++的DLL中加载图片失败
C#的CS程序<em>调用</em>C++写的DLL,在C++的DLL中加载BMP图片时内存报错,请问这方面要怎么处理?
C#中调用VC 的Dll失败
1.DLL代码rnMFCDll.cpprnCMFCDllApp::CMFCDllApp()rnrn // TODO: 在此处添加构造代码,rn // 将所有重要的<em>初始化</em>放置在 InitInstance 中rnrnrnrn// 唯一的一个 CMFCDllApp 对象rnrnCMFCDllApp theApp;rnrnrn// CMFCDllApp <em>初始化</em>rnrnBOOL CMFCDllApp::InitInstance()rnrn CWinApp::InitInstance();rnrn return TRUE;rnrnextern "C" __declspec(<em>dll</em>export) int Add(int a,int b)rnrn AFX_MANAGE_STATE(AfxGetStaticModuleState());rn TRACE("Entering DllAdd\n");rnrn return a+b;rnrn2.C#代码rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnusing System.Runtime.InteropServices;rnrnnamespace WindowsFormsApplication1rnrnrn public partial class Form1 : Formrn rnrn public Form1()rn rn InitializeComponent();rn [DllImport:("MFCDll.<em>dll</em>",EntryPoint="Add",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]rnpublic static extern int Add(int a,int b);rnrn rn rnrn3.MFCDll.<em>dll</em>放在C#项目的bin/Debug目录下rn4.编译错误信息rnrn------ 已启动生成: 项目: WindowsFormsApplication1, 配置: Debug Any CPU ------rnC:\WINDOWS\Microsoft.NET\Framework\v3.5\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:DEBUG;TRACE /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.<em>dll</em>" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.<em>dll</em>" /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.<em>dll</em> /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Deployment.<em>dll</em> /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.<em>dll</em> /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.<em>dll</em> /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.<em>dll</em> /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.<em>dll</em> /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Xml.Linq.<em>dll</em>" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\WindowsFormsApplication1.exe /resource:obj\Debug\WindowsFormsApplication1.Properties.Resources.resources /target:winexe Form1.cs Form1.Designer.cs Program.cs Properties\AssemblyInfo.cs Properties\Resources.Designer.cs Properties\Settings.Designer.csrnE:\softWork\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs(20,107): 错误 CS1513: 应输入 rnE:\softWork\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs(27,1): 错误 CS1022: 应输入类型、命名空间定义或文件尾rnrn编译完成 -- 2 个错误,0 个警告rn========== 生成: 成功 0 个,<em>失败</em> 1 个,最新 0 个,跳过 0 个 ==========rnrn5.如果是在C#解决方案的引用菜单中进行引用的话,就会出现错误提示:rn未能添加对“E:\softWork\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\MFCDll.<em>dll</em>”的引用。请确保此文件可访问并且是一个有效的程序集或 COM <em>组件</em>。rnrnrn请高手指点,万分感激!
发布过的网页调用COM(DLL)失败
无论是WebService还是应用程序,发布过后<em>调用</em>COM(DLL)<em>失败</em>,但代码直接调试正常(.net自动生成的虚拟目录)。是否是IIS权限问题?请高手指点
调用COM的dll中的函数
我是初学者,自己用visual foxpro编了一个简单的DLL,已经用regsvr32 qwe.<em>dll</em>注册了<em>组件</em>,rn我在DLL中定义一个求和函数,有2个参数,返回它们的和,但生成的头文件里是下面的函数原型,怎么用?rnvirtual /* [id] */ HRESULT STDMETHODCALLTYPE add( /* [retval][out] */ long *RetVal) = 0;rn怎么只有一个参数?
vc中调用comdll
我是初学者,自己用visual foxpro编了一个简单的DLL,已经用regsvr32 qwe.<em>dll</em>注册了<em>组件</em>,并生成了qwe.idl文件,rn请问在vc.net中怎样<em>调用</em>qwe.<em>dll</em>中的函数?给出简单的例子
请教DLL中调用COM
在exe中创建并声明COM接口,在DLL中如何<em>调用</em>COM?rnexe.cpp rn---------------------------------rnCComPtr myCom;rnrn int (__stdcall *FuncInDll)(TInterface *);rn SMHwnd = LoadLibrary("aa.<em>dll</em>");rn FuncInDll = GetProcAddress(SMHwnd,"test");rn FuncInDll(&myCom);rnrnaa.<em>dll</em>rn--------------------------------------rnextern "C" __declspec(<em>dll</em>export) void __stdcall test(Interface *myCom);rnrnvoid __stdcall test(Interface *myCom)rnrn MainForm = new TMainForm(Application);rn MainForm->ShowModal(myCom);rn delete MainForm;rn MainForm = NULL;rnrn上面的代码问题出在哪?
C#学习总结笔记本 c#生成dll,com组件调用
创建C#<em>dll</em> <em>com</em><em>组件</em> 勾选 添加密钥 重命名类文件 使用工具生成Guid【作用不明】 Guid生成 任何一个公开的类,必须有一个 I开通的接口定义【作用不明】 重新生成 查看<em>dll</em>所在目录 以管理员身份运行,进入到目录 注册<em>dll</em> gacutil /i regasm 指令路径:大致如下 ...
C++调用C#的DLL,C# DLL需要转化为COM?
RT。rnrn现在有个需求:rn1、C++(非托管 VC6)需要<em>调用</em>C#写的DLLrn2、C#的DLL为旧有DLL,之前是直接给C#程序<em>调用</em>的rn3、有人说要把C# <em>dll</em>转为COM才可以,请问,转换量大?如何转换?哪里有类似的DEMO?rnrn由于对C#不是很熟悉,如果转换量过大 或实在不行 就只有用VC重写<em>这个</em>C#的DLL了。。。rnrn谢谢!
Atl Com组件DLL非注册调用
1:包含头文件: 、#include “../ATL<em>com</em>Mfc/ATL<em>com</em>Mfc_i.h” 、#include “../ATL<em>com</em>Mfc/ATL<em>com</em>Mfc_i.c”因为头文件<em>中有</em>函数定义,和clsid,iid的声明; 2:定义函数指针,加载<em>dll</em>文件 //没有将<em>com</em>接口在系统注册的情况 typedef HRESULT(__stdcall * pmath)(REFCLS
MFC调用COM组件dll源码
基础的<em>dll</em>源码可以用里面的网页进行调试
在DLL里面调用COM组件的接口函数出错
本人开发工具是VS2010,操作系统是WINDOWS7 64位,C# 开发。rnrn<em>调用</em>COM<em>组件</em>的方法是直接在 Add Reference 对话框中选择COM选项卡,选择其中的COM服务。rnrn如果在生成的一个应用程序(EXE)中直接添加,没问题,一切正常。rnrn但我需要在一个DLL中<em>调用</em>COM,<em>然后</em>外部EXE程序再<em>调用</em>我的DLL,<em>这个</em>时候就会出现COM的某些函数无法<em>调用</em>,就会出现类似“Error HRESULT E_FAIL has been returned from a call to a COM <em>com</em>ponent.”的错误。rnrn困扰2天了,求解!
com组件调用 扩展dll吗?
我做了一些<em>com</em><em>组件</em>(建立<em>com</em><em>组件</em>的时候 没有选择 支持mfc )rn现有一个 lib 和 <em>dll</em>文件 他是扩展的 里面有好些c++类.我想用它的类。rn但是 编译的时候 根本不认 类头文件中的 AFX_EXT_CLASS。( 如 class AFX_EXT_CLASS CMath_Vec2D )rn问题1 不支持mfc的<em>com</em><em>组件</em>能<em>调用</em>扩展<em>dll</em>?rn2 怎么办呢
关于调用com组件dll的问题
我用vc写了一个<em>com</em><em>组件</em><em>dll</em>,在C#中经过“引用”导入,并且已经注册。rn但我修改了<em>dll</em>中的内容,即重新生成了一个新的<em>dll</em>(同名,覆盖原来的),C#就找不到<em>组件</em>了。我是将原来的在引用中删除重新添加的。请问是什么原因?
C# 中调用dll
起因是因为相机有个手眼标定程序是用C#写的,中间留出来了机器人通信的地方,但是我们的机器人只提供了<em>dll</em>来控制。因此要结合起来的话,想试试通过C#来<em>调用</em><em>dll</em>。 一. C# 中静态<em>调用</em>C++动态链接     1. 建立VC工程CppDemo,建立的时候选择Win32 Console(<em>dll</em>),选择Dll。     2. 在CppDemo.cpp文件中添加这些代码。 extern
c#调用dll
<em>c#</em>中<em>调用</em><em>dll</em>
C#中调用dll
我要加载x.<em>dll</em>文件rnx.<em>dll</em>文件有几个类及方法rn但我这么写还是报错,为什么?rn public class Login: System.Web.UI.Pagern rn [System.Runtime.InteropServices.DllImport("CCA.<em>dll</em>")]rn public static extern Boolean AlternateCall();rn private void Page_Load(object sender, System.EventArgs e)rn rn// // 在此处放置用户代码以<em>初始化</em>页面rn Boolean x;rn x = AlternateCall();rn if(x==true)rn Response.Write("sss");rn elsern Response.Write("as");rnrnrnrn在x = AlternateCall();报错rn请教怎么<em>调用</em>?rn
vc.net怎么调用COM组件DLL?
主要是想使用<em>dll</em>中的类 ,我在现有的工程中通过引用一个<em>这个</em><em>组件</em><em>dll</em> rn 我想生成<em>这个</em>类的实例,请高手们帮忙。rn
java如何来调用com组件dll
各位大侠,请帮帮忙!rn在java中如何能像ASP中;obj=Server.CreatObject("base21");rn<em>调用</em><em>com</em><em>组件</em>????rn非常急,请帮帮忙!rn谢谢。
PHP如何调用非COM组件的DLL
RTnnPHP<em>调用</em>一个易语言写的DLLnn求高手写个简单的DEMO
如何调用第三方的dllcom组件
在struts中:rn我想把我的一个action动作做成<em>调用</em>rndelphi 7写的.<em>dll</em>或<em>com</em><em>组件</em>??rn该如何做??
CBuilder中调用DLL失败
我采用如下方法:rn1.导入类型库rn2。通过Co***::Create()创造实体rn3.问题:对于某些DLL使用成功,而有些<em>失败</em>,<em>失败</em>的原因发生在CreateInstance(...)rn 处,不知为何?
dll调用LoadBitmap失败
[code=C/C++] rnif( !( m_hBitmap = LoadBitmap( GetModuleHandle(0), TEXT("BMP") ) ))//加载图片<em>失败</em>rn rn MessageBox(NULL,TEXT("加载图片<em>失败</em>"),NULL,NULL);rn [/code] rn 在<em>dll</em>中添加/导入了 bmp图片rn 为什么<em>调用</em>LoadBitmap 总是<em>失败</em> ? 难道<em>dll</em>中不能使用LoadBitmap ? 难道插入图片、光标、对话框等资源无效??rnrn
c#调用C++的DLL时调用失败
本人C#小白。老大要求用C#<em>调用</em>C++的DLL.nC++的我写出来了,可以<em>调用</em>成功.n#include n#include nvoid main()n HMODULE hModule = ::LoadLibrary(_T("C:\\CT_InfoTerm.<em>dll</em>"));n typedef LONG (WINAPI *pDLLProc)(int,char*,int,int,int,char*,int);n pDLLProc <em>dll</em>func;n int iPort = 0;n char cExtendPort[1] = '9';n int iBaudRate = 9600;n int iVoiceType = 0;n int iTimeOut = 30;n char cPin[256];n memset(cPin, NULL, sizeof(cPin));n <em>dll</em>func = (pDLLProc)n ::GetProcAddress((HMODULE)hModule, "CT_ReadPin");n int iReturn;n if (<em>dll</em>func != NULL)n iReturn = <em>dll</em>func(iPort, cExtendPort, iBaudRate, iVoiceType, iTimeOut, cPin, sizeof(cPin));n nnn现在改为C#的n [DllImport("CT_InfoTerm.<em>dll</em>", EntryPoint = "CT_ClosePinPad" ,CallingConvention=CallingConvention.Cdecl)]n public unsafe static extern int CT_ReadPin(int iPortNo, char extendPort, int iBaudRate, int iVoiceType, int iTimeOut, StringBuilder Pin, int iPinSize);n n public unsafe void CT_ReadPin(WebCommand <em>com</em>mand) n n int nRet = -3;//打开串口<em>失败</em>(默认)n if (_canRead)n n int iPortNo = 0;n char extendPort = '9';n int iBaudRate = 9600;n int iVoiceType = Convert.ToInt16(<em>com</em>mand.Parameter);n int iTimeOut =30;n //var Pin=new byte[100];n StringBuilder Pin = new StringBuilder(1024);n // string Pin = new string(Convert.ToChar(" "), 256);n // char Pin = new char();n int iPinSize =256;n nRet = Centerm.CT_ReadPin(iPortNo,extendPort,iBaudRate,iVoiceType,iTimeOut,Pin,iPinSize);n checkresult(<em>com</em>mand, nRet);n n n pin是返回值n 注释的地方是我尝试的方法,并不报任何错误,但是C#的<em>调用</em>不成功,可能是pin<em>这个</em>参数有问题.n 各位大神能不能提供一些思路,供我参考一下,多谢
Register COM DLL(注册DLL的API组件
Delphi源代码,内附VB6动态注册DLL的DEMO
javascript 调用comdll
我用vc 的alt <em>com</em> appwizard 写了个简单的rnmport "oaidl.idl";rnimport "ocidl.idl";rn [rn object,rn uuid(773DD823-7DCB-4B23-AF0F-4D05DF23E3BF),rn dual,rn helpstring("IMathObj Interface"),rn pointer_default(unique)rn ]rn interface IMathObj : IDispatchrn rn [id(1), helpstring("method Sum")]HRESULT Sum(int x,int y,[out,retval]int* sum);rn [id(2), helpstring("method Print")] HRESULT Print();rn rn ;rnrn[rn uuid(675BF701-F469-4619-816F-10931EB4B741),rn version(1.0),rn helpstring("Math 1.0 Type Library")rn]rnlibrary MATHLibrnrn importlib("stdole32.tlb");rn importlib("stdole2.tlb");rnrn [rn uuid(2839E7D7-AF25-469C-8FEC-EBDA7DA0F630),rn helpstring("MathObj Class")rn ]rn coclass MathObjrn rn [default] interface IMathObj;rn ;rn;rn有两个方法。其中[id(1), helpstring("method Sum")]HRESULT Sum(int x,int y,[out,retval]int* sum);rn很简单 ,如下:rnSTDMETHODIMP CMathObj::Sum(int x, int y, int *sum)rnrn // TODO: Add your implementation code herernrn *sum=x+y;rn MessageBox(NULL,NULL, NULL,MB_OK); rn return S_OK;rnrn我通过rnrnrn rn New Document rn rn rn rnrn rn rn rn rnrn<em>调用</em>,总是说不是对象的方法。。这样做不对么?!要怎样实现javascript<em>调用</em><em>dll</em>?在线等候,请高手帮忙!rn
怎样区分标准DLL和COM组件DLL?
怎样区分标准DLL和COM<em>组件</em>DLL?
Tlbimp 生成c#互操作com组件dll
Tlbimp C:\Windows\System32\HelpPaneProxy.<em>dll</em> F:\MyWorkSpace\HelpPaneProxySharp.<em>dll</em> Microsoft (R) .NET Framework Type Library to Assembly Converter 4.0.303 Copyright (C) Microsoft Corporation. All...
C# dll程序注册为com组件
怎么把C#编写的<em>dll</em>程序注册为<em>com</em><em>组件</em>,供MFC<em>调用</em>啊,急!!!
调用 DLL失败的原因
<em>调用</em><em>dll</em>时:rntypedef void (*pShow)(int); rnpShow Show=(pShow)::GetProcAddress(hDll,"DLLFunc");rnrn其中 hDll有值 不为空 加载<em>dll</em>func也是成功的rn可是为什么 show的值为空呢
c# 中如何调用这个非托管DLL?
在C++中,很容易就可以实现,现在在C#中如何实现<em>调用</em>?因为要做个例子给客户rnrn//rntypedef void CALLBACK_FUNC;rnrnrn__stdcall InitEx( CALLBACK_FUNC *pFunc)rnrn...rnCALLBACKInit(pFunc);rn...rnrnrnvoid CALLBACKInit(CALLBACK_FUNC *pFunc)rnrn mGuiStateCallback = (GuiStateCallback)pFunc;rnrnrnrn其中:rn//rnstatic GuiStateCallback mGuiStateCallback;rnrn//rntypedef enum GUI_STATE rn...rnGUI_STATE;rnrntypedef enum GUI_MESSAGE rn...rnGUI_MESSAGE ;rnrntypedef struct PVS_APIIF_DATA rn INT Length;rn CHAR *Data;rn PVS_APIIF_DATA;rnrntypedef struct GUI_BITMAP rn INT Width;rn INT Height;rn PVS_APIIF_DATA * BitmapData;rn PVS_APIIF_GUI_BITMAP;rnrntypedef enum RESULT rn...rnRESULT;rnrnrntypedef RESULT (*GuiStateCallback) rn ( GUI_STATE GuiState,rn GUI_MESSAGE Message,rn GUI_BITMAP * pBitmapArea);
dll调用失败
[url=http://topic.csdn.net/u/20081202/15/ae00b4dd-aa0e-4069-bb4a-4afe4a898ca3.html][/url]rn上次说的DLL<em>调用</em>还是<em>失败</em>!不过我用一个不是<em>dll</em>的exe却成功了,有谁知道什么原因么!
vb.net2008 调用 dll 失败
开发环境:vb.net 2008rn<em>调用</em><em>组件</em>:vb6 制作的<em>dll</em>rnrn系统环境:win7 x64rnrn错误:检索 COM 类工厂中 CLSID 为 8796790A-DAEC-4491-A7ED-9000DE038BC2 的<em>组件</em>时<em>失败</em>,原因是出现以下错误: 80040154。rnrn不过<em>这个</em> <em>dll</em> 在 vb6 下<em>调用</em> 是成功的 也被正常的在.net 中引用rnrn不过 <em>调用</em>代码 new 的时候 出现上述错误rnrn并且 <em>这个</em> <em>dll</em> 我使用 regsvr32 已经注册成功rnrn不知道 各位以前遇到过这样的问题么 请不吝赐教
Asp中调用dll组件
最近为Asp商户做一套实现咱们自己支付系统的测试接口程序,对Asp 一点都不熟,没办法只有硬着头皮试试,<em>这个</em>测试接口程序的难点也就在3des加密,因为某些接口字段需要进行3des加密,网上找了一些3des资料看了看,了解了下基本概念,后来网上找了一些3des Asp例子和Java加密出来的密文不一致,原来咱们使用的384位的密钥,Asp使用的192位的密钥,无奈的情况下想到是否能使用Asp来<em>调用</em>C...
asp调用dll失败!!!
我用vb做了个<em>dll</em>, 用exe工程调试通过,可以操作数据库,但是用asp<em>调用</em><em>dll</em>确<em>失败</em>!rnvb <em>dll</em>代码:rn'prject name: CDrn'classname:CD_handlern'---------------------rnPublic Function Add(Id As String, Name As String, Author As String, Price As Currency, Information As String)rn Dim NewConn As New ADODB.Connectionrn Dim NewRecordsetCD As New ADODB.Recordsetrnrn NewConn.Open "dsn=testfile; uid = sa;pwd = ; database = testfile"rn rn NewRecordsetCD.Open "SELECT * FROM CD", NewConn, adOpenDynamic, adLockOptimisticrn NewRecordsetCD.AddNewrn NewRecordsetCD.Fields("CD_ID") = Idrn NewRecordsetCD.Fields("CD_Name") = Namern NewRecordsetCD.Fields("CD_Author") = Authorrn NewRecordsetCD.Fields("CD_Price") = Pricern NewRecordsetCD.Fields("CD_Information") = Informationrn NewRecordsetCD.UpdaternEnd Functionrn'-----------------------rnasp 代码:rnrn-----------------rn'网页上错误提示:rnMicrosoft OLE DB Provider for ODBC Drivers (0x80040E4D)rn位置是这一句:Insert_CD1.Add 111,"dfd","dsf",131.13, "dfadsf"
动态连接库(DLL)初始化例程失败
MFC开发了一个控件,到XP机器上注册,发现注册不了,在2003操作系统上都可以注册,控件也是在2003下开发的,提示动态连接库(DLL)<em>初始化</em>例程<em>失败</em><em>这个</em>错误信息
注册COM DLL 失败的问题
有一个TestCOM.<em>dll</em>,在里面<em>调用</em>了5.1版本的dbghelp.<em>dll</em>文件,在Windows XP机器上注册TestCOM.<em>dll</em>没有问题,但在Windows2000的机器上注册就有问题,如果将TestCOM.<em>dll</em>里<em>调用</em>dbghelp.<em>dll</em>的功能却掉就可以在2000下注册了,我现在5.1版本的dbghelp.<em>dll</em>的文件和TestCom.<em>dll</em>放在同一个目录下,还是无法注册成功,报LoadLibrary TestCOM.DLL<em>失败</em>,找不到指定的程序,请问<em>这个</em>问题如何解决,谢谢!
关于dll初始化com的奇怪问题!
我在<em>dll</em>中加入如下代码 rnrnSHDocVw::IShellWindowsPtr m_spSHWinds;rnrnrnif (m_spSHWinds == NULL)rn rn if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK)rn rn rn rn rn AfxMessageBox("Failed");rn CoUninitialize();rn // EndDialog(1);rn rn rnrn当走到rnm_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK)rn时候就死掉了不知道为什么?
MFC DLL中的多线程 + com初始化问题
我用ATL做的windows服务,<em>调用</em>MFC写的DLL,<em>这个</em><em>dll</em><em>中有</em>三个线程,主线程和其中一个自线程都需要<em>初始化</em><em>com</em>来解析XML文件,得知每个线程都需要<em>初始化</em><em>com</em>也就是<em>调用</em>coinitiliza(NULL)函数,问题是在子线程<em>初始化</em><em>com</em>后,再<em>调用</em>_<em>com</em>_util::convertBTRToString()时报内存错误:内存0x000000处不能为Read,其实是_bstr_t转为char*时发生的,请教大家了
dll调用dll?
我要在vb中<em>调用</em><em>dll</em>,但提示文件找不到,文件名、路径没有问题。此<em>dll</em>文件是<em>调用</em>另一个ImageLoad.<em>dll</em>文件生成的。rn怎样在<em>dll</em>中<em>调用</em>ImageLoad.<em>dll</em>?rn我直接vb中<em>调用</em>ImageLoad.<em>dll</em> 是出错,好像是<em>dll</em>文件的.def有问题,不是为vb做的?rn
c#调用com组件
实现在<em>c#</em>中<em>调用</em><em>com</em><em>组件</em>
C#创建DLL和调用DLL
我现在想用C#在A项目中写一个DLL,在B项目中<em>调用</em>,可不知道怎么写和怎么<em>调用</em>rnDLL主要功能是实现主机头的添加rn代码如下:rnDirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/" + siteid);rn PropertyValueCollection serverBindings = site.Properties["ServerBindings"];rn string headerStr = string.Format("0:1:2", ip, port, domain);rn if (!serverBindings.Contains(headerStr))rn rn serverBindings.Add(headerStr);rn rn site.CommitChanges();rnrn现在请问我<em>这个</em>DLL要怎么写才可以在B项目中<em>调用</em>
请问C++可不可以调用C#编写的Dll(非Com组件)
请问C++可不可以<em>调用</em>C#编写的Dll(非Com<em>组件</em>),如果行,麻烦你们给点代码!谢谢了先
C#如何调用老VB6的COM组件(DLL)
我们的ASP老系统在升级中,里面有大量的VB6<em>组件</em>,部分代码已经遗失,只有DLL了,如何rnC#如何<em>调用</em>老VB6的COM<em>组件</em>(DLL)
c#开发dll调用dll
详细讲解C#如何开发<em>dll</em>,和<em>调用</em><em>dll</em>
C#生成com组件形式的dll供C++调用
①创建C#类库(ClassLibrary)、设置AssemblyInfo.cs中的[assembly: ComVisible(true)]默认是false、或者在接口和类之前添加设置为true     [ComVisible(true)]     [Guid("E709D3B9-18E8-4189-B1E0-49F72DD5A74C")]     public interface Combi
请教:C++builder调用C#创建的com组件(.dll和.tlb)谢谢!
最近做项目的时候遇到一个问题,要用c++buillder<em>调用</em>对方用C#创建的.<em>dll</em>和.tlb文件。rnrn对方生成的文件如下:rnFramework.Data.AccessDelegate.<em>dll</em>rnFramework.Data.AccessDelegate.tldrnrn我在c++工程中这样导入:rn#import "Framework.Data.AccessDelegate.tlb"rnusing namespace Framework.Data.AccessDelegate;rnrn出现问题如下:rn导入之后,生成了两个文件Framework.Data.AccessDelegate.tlh , Framework.Data.AccessDelegate.tli ;rnrn在编译的时候提示错误:cannot open include file "Framework.Data.AccessDelegate.tlh".rnrn请教各位兄弟姐妹,<em>这个</em>错误如何解决?rnrn同时请教导入成功之后应该怎么<em>调用</em>? Thanks!rnrn
java操纵com组件–java调用C#写的DLL文件
java操纵<em>com</em><em>组件</em>–java<em>调用</em>C#写的DLL文件. 是一个完整的例子,包含源码和<em>dll</em>文件,已经一些必备的jar包和工具。 用的是jacob方式~
DllImport调用C#写的com组件dll问题
代码:rnrn[code=csharp] [Guid("8640822D-ABC1-4709-A099-7FEE2F3F822D"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]rn public interface MyCom_Eventsrn rn rnrn [Guid("8041CD87-F2FD-4F89-9051-5191662ECCB6"), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(MyCom_Events))]rn public class Class1 : MyCom_Interfacern rn public int Add(int a, int b)rn rn return a + b;rn rn [/code]rnrn引入:rn[code=csharp][DllImport("MyInterop.<em>dll</em>")]rn public static extern string ShowDialog();[/code]rn错误:rn其他信息: 无法在 DLL“MyInterop.<em>dll</em>”中找到名为“ShowDialog”的入口点。
VC6.0 下如何调用利用C#的com组件写的DLL ?
rnrn怎么在VC6.0下<em>调用</em>利用C#的<em>com</em><em>组件</em>写的DLL ?rnrn还有就是如何使用该DLL在VC6.0下订阅事件?rnrn多谢各位了!
vb.net 怎样调用delphi dll这个dll C#可以调用的)
vb .net 可以<em>调用</em>api <em>dll</em> 没有出错,我<em>调用</em>自己的delphi 写的<em>dll</em>就出现错误,而且我用C#<em>调用</em>是好的,不知道是否因为我的<em>调用</em>方法有问题rnrnDeclare Auto Function PrvBarcode Lib "lenx.<em>dll</em>" (ByVal bpreview As Boolean, ByVal strBarcode As String, ByVal strName As String, ByVal strDate As String, ByVal strStandard As String, ByVal strTwoBarcode As String, ByVal h As System.IntPtr)rnrn有错吗
为什么我在VB里可以调用VB.NE的COM DLL,而调用C#的DLL就失败呢?
rn参考了网上的一些文章,用一系列方法把VB.NET的DLL注册成了全局COM<em>组件</em>,<em>然后</em>在VB 6.0里面可以<em>调用</em>。但是换了一个C#的DLL,用同样的方法注册,在VB 6.0里面却不能<em>调用</em>。rnrn请问是怎么回事呢?顺便问下,如果我的VB 6.0里面用到了.NET的COM<em>组件</em>,客户端需不需要安装.NET FRAMEWORK呢?谢谢!
COM组件注册DLL不成功
COM注册DLL不成功 COM注册的DLL也和任何动态链接库一样是编译程序生成的 动态链接库的最重要的特点就是一个DLL可能依赖其他DLL,依赖的功能在其他DLL内部,只有程序运行时,才会将指令走到其他DLL中去。 编译这种DLL并不需要其依赖的其他DLL文件,而只需要.h头文件和.lib引用文件。 COM<em>组件</em>在注册DLL的时候会找到其依赖的DLL,如果找不到就会注册<em>失败</em>。 所以解决
c#调用第三方dlldll中有哪些方法如何查看
比如怎么用qq的截图的<em>dll</em>封装成一个单独的exe,<em>调用</em><em>这个</em><em>dll</em>中的方法,怎么知道他的方法名和参数
dll组件调用?
在vb里面如何<em>调用</em>用pb生成的<em>com</em><em>组件</em>的<em>dll</em>文件.我<em>调用</em>非可视化的<em>dll</em>,ok的;但是我只要让它<em>调用</em>一个窗体就,无法实现了.rn在vb中<em>调用</em>pb中的含有可视化窗体的<em>dll</em>时,该窗体可以出来,但同时鼠标显示忙,紧接着就连带vb6程序一块退出了,请问哪为大哥知道?rn我用的系统是win2000server和winxp,都不成.rn请多指点!
vc++ dll中有回调函数。c#调用的问题。
vc++ <em>dll</em><em>中有</em>回调函数。<em>c#</em>中对应声明了回调函数。在vc++ <em>dll</em>中为什么不能得到<em>c#</em>回调函数的返回值。并且多<em>调用</em>几次,vc++ <em>dll</em>就会出现异常?rnrn大概代码:rnrn<em>c#</em>中rn[DllImport("ObjectEvaluationManager.<em>dll</em>")] rnextern static Int32 Calculation(CallBack GetStateCallBack, IntPtr handle);rnrnpublic delegate Int32 CallBack(Int32 State, IntPtr handle);rn rnCallBack GetStateCallBack = new CaluculationCallBack(GetState);rnrn//回调函数体rnpublic Int32 GetState(Int32 State, IntPtr handle)rn rn return 0;rnrnrn//<em>调用</em>vc++ <em>dll</em>中函数rnCalc(GetStateCallBack, mainForm.Handle);rnrnvc++ <em>dll</em>中:rntypedef int (*CaluculationCallBack)(int in_Status,void* in_UserData); rnrnvoid CDll::Calc(CallBack CalcState, void* handle) rnrn //不能得到<em>c#</em>回调函数的返回值。并且多<em>调用</em>几次,就会出现异常rn int iRet = CalcState(1, handle);rn
java 调用.dll组件
这几天同事<em>调用</em>.<em>dll</em>文件出现各种问题, 在下闲来无事,也来玩玩,碰到的问题做个记录,指不定哪天就能用上,休洛洛洛~ java<em>调用</em>.<em>dll</em><em>组件</em>几种方式(JNI&amp;amp;JNATIVE&amp;amp;JNA) JNI JNI不要额外导入jar包,内置引用就可; 需要注意几点也是JNI<em>调用</em>的短板吧: 编写c++ .<em>dll</em>中 需要引入java生成的.h文件 **重点要考圈起来 类似于规定了一种...
Com组件式GIS之DLL
这些功能虽然简单,但对于初学者来说,还算可以。如果你会用DLL的话,将来<em>调用</em>起来更为方便。
com组件dll有什么区别
如题!
java调用C#封装的dll(jna,com)
java<em>调用</em>C#封装的<em>dll</em>(jna,<em>com</em>)java<em>调用</em>C#封装的<em>dll</em>(jna,<em>com</em>)java<em>调用</em>C#封装的<em>dll</em>(jna,<em>com</em>)
C++ 调用C# 写的COM DLL
1 rn而且使用其他工具regasm tlbexp等都不能成功改编为tlb,rn使用不能为包含潜入类型库的程序集制定类型库的名称rn2rn使用#using <> 提示fatal error C1113: #using failed onrnrn请问:<em>这个</em>到底该怎么解决呢???rn请问:是不是C++就不能够引用C#的COM DLL?或者C++想要使用C#的COM ,就必须提供tlb,来使用#import引用导入呢?rn十分感谢
.dll 组件 或者COM问题
现在我要修改别人做的一个C#程序,里面参照了一个叫 interop.bt<em>com</em>mactivexlib.<em>dll</em>的文件 rn但是我拿过他的程序来以后无论怎么弄, rn在public class MainForm : System.Windows.Forms.Form rn它里面定义的private BTCommActiveXLib.CommServerClass HT=new CommServerClass();<em>这个</em>地方出现的错误是 rn“System.Runtime.InteropServices.COMException ................................. rn 详细情况是:CLSID '3F942264-3317-40D2-9CDA-6AFA5B14B8FA' 的 COM Object无效。 ” rn<em>这个</em>问题怎么解决,是不是没有注册的原因,还是其他的原因,找不出原因,一个DLL文件转换成COM<em>组件</em>的例子(最好有注视)也可以,我自己研究一下。
关于创建com组件dll
对于一个储存在 VCX 中的可视类(类信息对话框中选择 OLE Public 复选框), 如何创建<em>com</em><em>组件</em>?还需要做其它什么工作?rn(我测试:一个项目中只有一个可视类,对话框中选择 了OLE Public 复选框,连编为<em>com</em> <em>dll</em>后不能使用,提示找不到到相应的类)
怎么做一个com组件dll
我的现在有一个编译好的<em>dll</em>,但不是<em>com</em>,原文件都在,怎么做成<em>com</em> ?????rnrn请高人指点!!
如何调用.dll组件
在ASP.NET程序中,如何<em>调用</em>VC++开发的DLL<em>组件</em>?
调用dll组件的问题
我现在刚开始学写<em>dll</em>(用VB),经常发现自己写错了,<em>然后</em>要重新生成一个新的。但是比如我生成了一个My<em>dll</em>.<em>dll</em>,使用过了之后就不能删除它了,总报“其他文件正在使用!”的错误。请问如果在程序里使用完<em>这个</em><em>dll</em><em>然后</em>把它完全释放。我试过释放它的对象rnset temp = server.createrObject(...)rnset temp = nothingrn好象只能释放资源,完毕后还是不能删除那个My<em>dll</em>.<em>dll</em>.请各位指教
DLL里面调用另外一个DLL失败!!!
求大家指教:rnrn问题:本人遇到一个问题:想用C语言做一个DLL,该DLL里面<em>调用</em>另外一个DLL。rnrn<em>调用</em>的DLL .h文件:rnstruct mystruct int a; int *b; ;rnextern "C" _declspec(<em>dll</em>export) int beggar( struct mystruct *cheese );rnrn准备生成的DLL .c文件:rn#include rn#include "call struct <em>dll</em>.h"rn#include "my<em>dll</em>_struct_2.h"rn#pragma <em>com</em>ment (lib, "my<em>dll</em>_struct_2.lib")rn#pragma pack (1)rn.rn.rn.rn<em>调用</em>DLL的.lib、.h、.DLL文件已放到准备生成DLL的工程目录下,但编译的时候<em>失败</em>,并提示:不允许重载函数“beggar”的第二个 C 链接。rnrn请问:C语言封装DLL里面再<em>调用</em>另外的DLL到底应该怎么处理呢?求指教!!!
DLL组件调用Exe组件的问题
大家好,我先用ATL写了一个exe形式的<em>组件</em>。后来又用MFC的常规DLL形式写了一个<em>组件</em>,里面用了自动化技术。现在的问题是我在<em>这个</em><em>dll</em><em>组件</em>里面不能创建<em>这个</em>exe<em>组件</em>。我的CXXXApp::InitInstance中的代码如下:rnBOOL CXXXApp::InitInstance()rnrn if( !AfxOleInit() )rn return FALSE;rn AfxEnableControlContainer( NULL );rnrn if( !AfxSocketInit() )rn return FALSE;rnrn ColeObjectFactory::RegisterAll();rnrn if( !InitComm() )rn return FALSE;rnrn return TRUE;rnrnrnICommPara *g_pCommPara = NULL;rnrnBOOL CXXXApp::InitComm()rnrn HRESULT hr = CoCreateInstance(CLSID_CommPara, NULL,rn CLSCTX_LOCAL_SERVER, IID_ICommPara,rn reinterpret_cast(&g_pCommPara) );rn if( FAILED(hr) )rn rn AfxMessageBox( _T("Create Com Error!") );rn return FALSE;rn rnrn return TRUE;rnrnrn程序执行到CoCreateInstance就不再继续执行了,也没有报任何错误。该怎么解决<em>这个</em>问题呢?谢谢各位。
C#调用com组件
现在有<em>这个</em>需求,有一个用VC写的COM<em>组件</em>,我这要在C# VS中<em>调用</em><em>这个</em><em>com</em><em>组件</em>,理由有些结构体,函数方法什么的,求大神指导怎么<em>调用</em>,<em>这个</em>结构体怎么<em>调用</em>啊。。。。
C#调用COM组件
我这里有一个VC写的<em>组件</em>,如何用C#来<em>调用</em>它,求源码。rn下面的代码是COM<em>组件</em>的主要代码,主要有三个函数组成:阳历日期转阴历日期,阴历日期转阳历日期,阳历日期转星期。其中在阴历和阳历互相转换的函数中,是应用查表的方式进行转换的rn//阳历日期转阴历日期rnSTDMETHODIMP Cyangconvyin::yangconvyin(WORD *yangdate, WORD *yindate, BOOL *prunyue, CHAR *yindateString)rn//阳历日期转阴历日期rnSTDMETHODIMP Cyangconvyin::yangconvyin(WORD *yangdate, WORD *yindate, BOOL *prunyue, CHAR *yindateString)rn//阳历转换为星期rnSTDMETHODIMP Cyangconvyin::yangconvweek(WORD *yangdate, CHAR *weekString)rn
gdi+初始化失败dll中应该在那里调用
问了google,不能在<em>dll</em>main中<em>初始化</em>gdi+rnrn那应该在那里<em>调用</em>呢 我在导出的接口里面<em>调用</em> 也不行
VC通过COM调用MATLAB中dll注册失败
在本机上实现功能都没有问题rnrn但是移植到其他机器无法注册<em>dll</em> 提示注册<em>失败</em>rnrnpackage+MCR后还是不行 在装有matlab和vc的机器上也不行rnrn求解
关于在DLL中使用COM组件的问题
我在DLL中使用一个COM<em>组件</em>,<em>组件</em>的部分方法可正常执行,但有些却不行。出现Assert错误。rnrn那位能指点一下,在这种使用方法下,要注意些什么?
WIN7下 c#调用C++ DLL 失败
用C++ 封装了一个简单的DLL,返回一个CHAR* 的指针,但是在WIN7下C#<em>调用</em>却<em>失败</em>,在XP下就没问题,是什么原因啊![img=D:\无标题.png][/img]
c#dllcom 组件dll 能否代替?学好了c# ,还用学com 吗?
如何在COM组件调用MFC DLL中的函数
Com 不支持MFC的DLL,但是现在我非常需要也只能从另外一个MFC作的DLL中<em>调用</em>函数,难道一点办法都没有了吗,请高手指教,非常谢谢!!
C#中调用非托管.dll
这是一个.<em>dll</em>中的函数rnlong WINAPI AutoOpenComPort(long Port, unsigned char *ComAdr, unsigned char * Baud,long *FrmHandle)rnrn那我在<em>c#</em>中怎么封装<em>这个</em>函数,怎么<em>调用</em>??rn请大侠们帮忙
C# 中如何调用DLL
为了能用上原来的C++代码,只好研究下从C# 中<em>调用</em>DLLrn首先必须要有一个声明,使用的是DllImport关键字: rn包含DllImport所在的名字空间 rnrnusing System.Runtime.InteropServices; rnpublic class XXXXrnrn[DllImport(“MyDLL.<em>dll</em>")] rnpublic static extern int mySum (int a,int b); rn rnrnrn[DllImport(“MyDLL.<em>dll</em>")] rnpublic static extern int mySum (int a,int b); rn代码中DllImport关键字作用是告诉编译器入口点在哪里,并将打包函数捆绑在<em>这个</em>类中 rn在<em>调用</em>的时候 rn在类中的时候 直接  mySum(a,b);就可以了 rn在其他类中<em>调用</em>: XXXX. mySum(a,b); rn rn[DllImport(“MyDLL.<em>dll</em>”)]在申明的时候还可以添加几个属性 rn[DllImport(“MyDLL.<em>dll</em>", EntryPoint=" mySum ",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall) rn] rnEntryPoint: 指定要<em>调用</em>的 DLL 入口点。默认入口点名称是托管方法的名称 。 rnCharSet: 控制名称重整和封送 String 参数的方式 (默认是UNICODE) rnCallingConvention指示入口点的函数<em>调用</em>约定(默认WINAPI)(上次报告讲过的) rnSetLastError 指示被<em>调用</em>方在从属性化方法返回之前是否<em>调用</em> SetLastError Win32 API 函数 (C#中默认false ) rnrnrnint 类型 rn[DllImport(“MyDLL.<em>dll</em>")] rn//返回个int 类型 rnpublic static extern int mySum (int a1,int b1); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(int a2,int b2) rn rn//a2 b2不能改变a1 b1rn//a2=..rn//b2=...rn return a+b; rn rnrnrn//参数传递int 类型 rnpublic static extern int mySum (ref int a1,ref int b1); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(int *a2,int *b2) rn rn//可以改变 a1, b1rn*a2=...rn*b2=...rn return a+b; rn rnrnrnDLL 需传入char *类型 rn[DllImport(“MyDLL.<em>dll</em>")] rn//传入值 rnpublic static extern int mySum (string astr1,string bstr1); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(char * astr2,char * bstr2) rn rn//改变astr2 bstr 2 ,astr1 bstr1不会被改变rn return a+b; rn rnrnrnDLL 需传出char *类型 rn[DllImport(“MyDLL.<em>dll</em>")] rn// 传出值rnpublic static extern int mySum (StringBuilder abuf, StringBuilder bbuf ); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(char * astr,char * bstr) rn rn//传出char * 改变astr bstr abuf, bbuf可以被改变rn return a+b; rn rn rnDLL 回调函数 rnrnBOOL EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam) rnrnhttp://blog.vckbase.<em>com</em>/images/vckbase_<em>com</em>/teky/blog3.JPGrnrnusing System; rnusing System.Runtime.InteropServices; rnpublic delegate bool CallBack(int hwnd, int lParam); //定义委托函数类型 rnpublic class EnumReportApp rn rn[DllImport("user32")] rnpublic static extern int EnumWindows(CallBack x, int y); rnpublic static void Main() rnCallBack myCallBack = new CallBack(EnumReportApp.Report); EnumWindows(myCallBack, 0); rn rnpublic static bool Report(int hwnd, int lParam) rn rnConsole.Write("Window handle is "); rnConsole.WriteLine(hwnd); return true; rn rn rn rnrnDLL 传递结构 rnBOOL PtInRect(const RECT *lprc, POINT pt); rnrnusing System.Runtime.InteropServices; rn[StructLayout(LayoutKind.Sequential)] rnpublic struct Point rn public int x; rnpublic int y;rn rn[StructLayout(LayoutKind.Explicit)] rn public struct Rect rn rn[FieldOffset(0)] public int left; rn[FieldOffset(4)] public int top;rn[FieldOffset(8)] public int right; rn[FieldOffset(12)] public int bottom;rn rnClass XXXX rn [DllImport("User32.<em>dll</em>")] rnpublic static extern bool PtInRect(ref Rect r, Point p); rn rnrnrn能用上DLL以后感觉还是很好的,原来的C++代码只要修改编译通过就可以了,rn高兴没多久,发现.net2005居然可以用VB,VC开发智能设备项目,可以创建MFC智能设备项目,难道可以直接用MFC来开发smartphone的程序了,请各位专来讨论讨论,发表您的经验和看法!rnrnrn转http://blog.vckbase.<em>com</em>/teky/archive/2006/04/14/19496.aspx
c#dll调用问题????
using System.Runtime.InteropServices;rnpublic class Libgetrn rn [DllImport("Sample.<em>dll</em>")]//引入<em>dll</em>rn public static extern int ShowMe();//声明需要用到的<em>dll</em>中函数rn rn /// rn /// Class1 的摘要说明。rn /// rn class Class1rn rn /// rn /// 应用程序的主入口点。rn /// rn [STAThread]rn static void Main(string[] args)rn rn //rn // TODO: 在此处添加代码以启动应用程序rn //rn int a=0;rn rn a = Libget.ShowMe();//showme函数返回值为1rn Console.WriteLine("如a=1,即表示成功<em>调用</em>");rn Console.Write("a=");rn Console.WriteLine(a);rn Console.Read();rn rn运行时说找不到.ShowMe的入口点,不知道为什么???/rn请各位指教,其中的<em>dll</em>我是用<em>c#</em>的类库编写的的rn我知道可以用引用来添加,不过我现在想学习使用这种方式,我是初学者,请各位多多帮忙!!!!谢谢!!!!
C#中调用DLL的问题
现在要<em>调用</em>一个C++的DLL文件的函数,DLL的应文件<em>中有</em>这的一个定义:rn#define MAX_LEN 32rn_declspec(<em>dll</em>import) unsigned int Data_ABCD[MAX_LEN]; rnrnDLL中的一个函数会向<em>这个</em>数组写数据rnrn现在用C#来<em>调用</em><em>这个</em>DLL函数,<em>然后</em>读取Data_ABCD的值,应该怎么写呢?rn
C#中DLL调用资料整理
一、DLL 动态链接库英文为DLL,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。例如,在 Windows 操作系统中,Comdlg32.<em>dll</em> 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现"打开"对话框。这有助于避免代码重用和促进内存的有效使用。 通过使用 DLL,程序可以实现模块化,由相
C#中调用C++的dll
http://www.soaspx.<em>com</em>/dotnet/csharp/csharp_20110406_7469.htmlrn小弟新手上路,按上面的方法建立一个DLL文件,但是编译之后没有出现第五步所示的5种文件。rn如下图所示:[img=https://img-bbs.csdn.net/upload/201503/26/1427373859_840117.png][/img]rn求指教,难道是因为楼主装的盗版VS2012就没有这种功能了?
C# 调用DLL中的函数
DLL是自己编的,也是C#也就是说是托管的。rnrn比如DLL<em>中有</em>一个函数叫getstring ,有一个参数a 返回string 命名空间是namespace,类是class1rnrn怎么写?最好有注释,小弟不胜感激
c#调用matlab dll
用详细的文字一步一步描述如何在<em>c#</em>中<em>调用</em>matlab <em>dll</em>
C# 中调用C++ DLL
为了能用上原来的C++代码,只好研究下从C# 中<em>调用</em>DLL 首先必须要有一个声明,使用的是DllImport关键字: 包含DllImport所在的名字空间 using System.Runtime.InteropServices; public class XXXX{ [DllImport(“MyDLL.<em>dll</em>")] public static extern int mySum (int a,int b); } [DllImport(“MyDLL.<em>dll</em>")] public static extern int mySum (int a,int b); 代码中DllImport关键字作用是告诉编译器入口点在哪里,并将打包函数捆绑在<em>这个</em>类中 在<em>调用</em>的时候 在类中的时候 直接  mySum(a,b);就可以了 在其他类中<em>调用</em>: XXXX. mySum(a,b);
C#中创建及调用DLL
很简单的创建DLL文件及外部<em>调用</em>DLL的实力,对于没有这方面经验的初学者有很好的参考价值
skyeye安装过程.doc下载
skyeye安装过程.doc 本人精心整理的,整合各家的经验 相关下载链接:[url=//download.csdn.net/download/superaspen/3479232?utm_source=bbsseo]//download.csdn.net/download/superaspen/3479232?utm_source=bbsseo[/url]
服务器查CPU占用下载
服务器上查看哪个站点占cpu高,占内存高之类的,很好用的,小型空间提供商的好工具 相关下载链接:[url=//download.csdn.net/download/karahan/3789194?utm_source=bbsseo]//download.csdn.net/download/karahan/3789194?utm_source=bbsseo[/url]
CAD常用命令下载
CAD常用命令 相关下载链接:[url=//download.csdn.net/download/dxjzsb/4111189?utm_source=bbsseo]//download.csdn.net/download/dxjzsb/4111189?utm_source=bbsseo[/url]
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo
我们是很有底线的