请问 c#如何调用c++的dll? 就比如下面这个
怪我咯
怪我咯 2017-04-17 13:54:23
[C++讨论组]
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++大神 帮忙看看

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
黄舟

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

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

AddWindowEx 是个自定义函数吗?

ringa_lee

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

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

然后直接调用方法即可

黄舟

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号