请问 c#如何调用c++的dll? 就比如下面这个

浏览:22日期:2023-04-29

问题描述

CString GetCurrentDir(void){ TCHAR sDrive[_MAX_DRIVE]; TCHAR sDir[_MAX_DIR]; TCHAR sFilename[_MAX_FNAME]; TCHAR Filename[_MAX_FNAME]; TCHAR sExt[_MAX_EXT];GetModuleFileName(AfxGetInstanceHandle(),Filename,_MAX_PATH); _tsplitpath(Filename,sDrive,sDir,sFilename,sExt); CString HomeDir(CString(sDrive)+CString(sDir));if (HomeDir.GetAt(HomeDir.GetLength()-1)!=_T(’’))HomeDir+=_T(’’); return HomeDir;} char path[256]; sprintf(path, '%splaylist1.txt', GetCurrentDir()); result = AddWindowEx(iCom, iAddress, iSchedule, 0, 0, 128, 32, path); if (!result)AfxMessageBox('设置播放数据playlist1.txt失败');

我怎么调用AddWindowEx 这个方法 主要是 sprintf(path, '%splaylist1.txt', GetCurrentDir()); 这一句是干嘛的 百度了一圈也没看到答案 有没有c++大神 帮忙看看

问题解答

回答1:

sprintf 可以用 C# 的 string.Format() 代替,如果用 C#6 可以直接写模板字符串 $'',GetCurrentDir 应该可以用 Environment.CurrentDirectory 代替。

var path = string.Format('{0}playlist1.txt', GetCurrentDir());path = $'{GetCurrentDir()playlist1.txt}';

AddWindowEx 是个自定义函数吗?

回答2:

c#只能通过平台调用c函数

回答3:

using System.Runtime.InteropServices;[DLLImport('xxx.dll')]public static extern 返回值 方法名(参数);

然后直接调用方法即可

回答4:

字符串格式化函数,百科有词条

相关文章: