游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8255|回复: 22

[.NET问题]关于DllImport属性

[复制链接]

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2005-10-7 20:33:00 | 显示全部楼层 |阅读模式
为什么用DllImport声明API时会提示"未定义类型“DllImport”。"?

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-8 19:22:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

这么快就沉了!?厚着脸皮自己顶个

50

主题

382

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2005-10-9 12:56:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

具体说下,你是怎么调用的,DLL的作用是什么?

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-9 16:42:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

Public Class Form1
……
<DllImport("user32.DLL", EntryPoint:="FindWindowA", _
CharSet:=CharSet.Auto)> _
Public Shared Function _
FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
End Function
……
End Class

50

主题

382

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2005-10-9 18:23:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Integer, ByVal lpWindowName As String) As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox(FindWindow(0&, "计算器"))
    End Sub

不知你是不是要这样的功能!

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-10-10 12:02:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

在托管代码中嵌入非托管代码要引用

Imports System.Runtime.InteropServices

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-10 14:02:00 | 显示全部楼层

Re: Re:[.NET问题]关于DllImport属性

我不是想要结果,用Declare 引用API没问题,我是想用DllImport试试看

System.Runtime.InteropServices我已经引用了,这个是新工程默认就引用了的

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-10 14:12:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

还有就是,MSDN里面说声明API时用了Any类型,要把Option Strict设置为Off,但如果保持Option Strict为On,那么VB。NET应该改成什么,Object类型?

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-10 14:35:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

超多问题 ="=;; 如果向API传递一个字符串型变量,那么,当API返回时,那个字符串变量的值会变成只有原来的第一个字符,比如之前是“计算器”,之后便成了“计”?

那个FindWindow又不能传址,现在只想到把那个字符串COPY一份,传给API

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-10-10 15:02:00 | 显示全部楼层

Re:[.NET问题]关于DllImport属性

Imports System.Runtime.InteropServices

Public Class Form1
    Inherits System.Windows.Forms.Form

    <DllImport("user32.DLL", EntryPoint:="FindWindowA", _
    CharSet:=CharSet.Auto)> _
    Public Shared Function _
    FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim s1 As String
        Dim s2 As String = "计算器"

        Dim lRet As Long
        lRet = FindWindow(s1, s2)

    End Sub

End Class
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-28 03:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表