C# 怎么传参数。

言多必失 2011-07-25 03:21:27



public class RegisterAndUnRegisterDll
{
public static string dllpath;

[DllImport("a.dll")]
public static extern int DllRegisterServer();

[DllImport(dllpath)]//加变量测试不通过。
public static extern int DllUnregisterServer();
}


[DllImport()] 函数 里面是字符串类型, 为什么只能这样的 [DllImport(" ")] 我加变量不行啊?


请问下 我注册dll的时候我不想,写死想给 传变量的名字怎么才能编译通过。
...全文
804 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
言多必失 2011-07-26
  • 打赏
  • 举报
回复
很想知道,
言多必失 2011-07-26
  • 打赏
  • 举报
回复
顶啊,这个不知道怎么弄才好。
言多必失 2011-07-25
  • 打赏
  • 举报
回复
用常量 有意义吗? 那我还不如
[DllImport("a.dll")]
我这样的做,就是以后注册dll的时候,方便。现在写成一个方法的。以后用啊,必须变量的。

常量表达式、typeof 表达式或数组创建表达式 这是三种情况啊, 不能逮住第一种不放啊。
typeof 数组创建表达式 到底能满足不? 能的话给我说下啊?谢谢了。
sdl2005lyx 2011-07-25
  • 打赏
  • 举报
回复
如果你非要用变量,只有问微软了。。。。
sdl2005lyx 2011-07-25
  • 打赏
  • 举报
回复
不能用变量(NET系统已经这样提示),你就改用常量啊:
public const String rtDllName = "UTSQLAccess.dll";//MFC中的动态库;

[DllImport(UtRtdbVar.sqlDllName, EntryPoint = "DBInitialize")]
public static extern int DBInitialize();
言多必失 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sdl2005lyx 的回复:]
LZ,错误都告诉的很清楚了:报的错误是错误 "特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式",别人都跟你回答的很清楚了,真不知道你还想知道什么。。。。
[/Quote]

谁回答的很清楚啊,
sdl2005lyx 2011-07-25
  • 打赏
  • 举报
回复
LZ,错误都告诉的很清楚了:报的错误是错误 "特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式",别人都跟你回答的很清楚了,真不知道你还想知道什么。。。。
言多必失 2011-07-25
  • 打赏
  • 举报
回复
高手,快点出现啊。
言多必失 2011-07-25
  • 打赏
  • 举报
回复
怎么回事啊,没有人会吗?所有测试不通过。
言多必失 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lstcyzj 的回复:]
这个问题其实很简单
[/Quote]

简单就说,你就给出答案 。是嘴说的算的, 夸夸其谈的人最......。
WIKESOFT 2011-07-25
  • 打赏
  • 举报
回复
这个问题其实很简单
css_lujing 2011-07-25
  • 打赏
  • 举报
回复
报的错误是错误 "特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式"

说的很清楚了啊,变量是不行的。
你定义一个常量文件吧,这样管理起来比较方便
sdl2005lyx 2011-07-25
  • 打赏
  • 举报
回复
public const String rtDllName = "UTSQLAccess.dll";//MFC中的动态库;

[DllImport(UtRtdbVar.sqlDllName, EntryPoint = "DBInitialize")]
public static extern int DBInitialize(); //初始化数据库访问
言多必失 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 isjoe 的回复:]
还有一个方法,就是。Net动态编译。。。。
[/Quote]

Net动态编译 怎么动态编译?
言多必失 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 guotongyu1 的回复:]
给dllpath赋初值
[/Quote]

大哥啊不是初值的问题啊。

报的错误是错误 "特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式"
guotongyu1 2011-07-25
  • 打赏
  • 举报
回复
给dllpath赋初值
isjoe 2011-07-25
  • 打赏
  • 举报
回复
还有一个方法,就是。Net动态编译。。。。
isjoe 2011-07-25
  • 打赏
  • 举报
回复

[DllImport(dllpath)]//加变量测试不通过。
不支持变量的,那就吧DLL放到系统目录吧

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧