社区
C#
帖子详情
C#調用C++寫的DLL問題,急
jock_liu
2009-03-24 10:41:50
廠商有提供一VC++寫的dll文件(含abc.dll,abc.lib,a.h共3個當案)
我現在用C#寫的程式準備調用abc.dll,我使用DLLIMPORT引入
再調试的時候,顯示無法找到函數的入口,我用VC做的話只需要引入
a.h即可,請問在C#中該如何做,謝謝.
...全文
72
2
打赏
收藏
C#調用C++寫的DLL問題,急
廠商有提供一VC++寫的dll文件(含abc.dll,abc.lib,a.h共3個當案) 我現在用C#寫的程式準備調用abc.dll,我使用DLLIMPORT引入 再調试的時候,顯示無法找到函數的入口,我用VC做的話只需要引入 a.h即可,請問在C#中該如何做,謝謝.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jock_liu
2009-03-24
打赏
举报
回复
public RTD_Program(int comPort,StringBuilder str)
{
_comPort = comPort;
_strFile = new StringBuilder();
_strFile = str;
//_flashaddr = \Xff000;
}
//[DllImport("debugtools_library.dll", EntryPoint = "SetHDCP_CODE")]
[DllImport("debugtools_library.dll")]
private static extern long RtdProgram
(
int comport,
ref StringBuilder strFile,
UInt32 flashaddr,
int mode
);
//[DllImport("debugtools_library.dll", EntryPoint = "GetHDCP_CODE")]
[DllImport("debugtools_library.dll")]
private static extern long RtdRead
(
int comport,
UInt32 flashaddr,
UInt32 length,
ref StringBuilder strFile //unsigned
);
public long Write_HDCP()
{
retval = RtdProgram
(_comPort, ref _strFile, 0xff000, 2
);
return retval;
}
public StringBuilder Read_HDCP()
{
RtdRead(_comPort, 0xff000, 320, ref _strBuff);
return _strBuff;
}
再執行public long Write_HDCP()的時候報錯
在DLL'debugtools_library.dll中找不到RtdProgram進入點
dll函數接口
__declspec(dllexport) long RtdProgram(int comport, char* strFile, UINT32 flashaddr, int mode);
__declspec(dllexport) long RtdRead(int comport, UINT32 flashaddr, UINT32 length, unsigned char* getData);
wangzhe1945
2009-03-24
打赏
举报
回复
放到当前程序目录中,DLLIMPORT, 申明为外部函数,就可以调用了
C++
调用
C#
的
DLL
实例程序
然后,你可以像调用
C++
函数一样调用
C#
方法。注意,
C++
/CLI中的类型系统与
C++
有所不同,所以需要适当地转换类型。 在提供的压缩包文件"Test
Dll
"中,可能包含了实现上述步骤的源代码。它可能包含一个
C#
DLL
项目和一个...
C#
调用
C++
的
dll
方法
C#
调用
C++
的
dll
总归可以有两种方法: 1、非托管
C++
创建的
dll
库,需要用静态方法调用; 2、直接使用CLR,生成托管
C++
dll
库。
C#
调用
c++
的
dll
方法,动态调用
c++
dll
的方法
C#
调用
c++
的
dll
方法,动态调用
c++
dll
的方法
C#
调用
C++
的
DLL
C#
调用
C++
DLL
vs2019 实现
C#
调用
c++
的
dll
两种方法
vs2019 实现
C#
调用
c++
的
dll
两种方法1.托管与非托管的区别2.非托管类的实现第一步:创建
C++
空项目(命名Caculate)添加一个类AddOperate第二步:将
C++
代码编译成动态库
dll
第三步:将
dll
拷贝到
c#
项目输入目录,一般在...
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章