понедельник, 5 июня 2017 г.


Privacy policy



    We don't receive your phone number, contacts or sms text. All this information never leaks your phone through our application.

    We don't sell any content.

    We don't requier registration.

    Your privacy is not affected in any way.

    We don't require any information and never send it anywhere, application reads phone contacts only to assist you in phone typing.

    We don't show any adds in application.

вторник, 22 июля 2014 г.

Типы приложений вконтакте.

Оказывается есть OpenAPI для сайтов, но не для iframe приложений. Для iframe приложений отдельный раздел документации и OpenAPI для них не подходит. А то можно перепутать и долго удивляться что идет не так.

вторник, 15 июля 2014 г.

Standalone приложения вконтакте. Хранимые процедуры.

Для создания надо код подтверждения на мобильник получить. Потом с помощью этого кода приложение активируется и с помощью get запроса по специально сформированному url получаем еще 2 "секрета" access_token и user_id. Есть там еще такая фишка как хранимые процедуры. Насколько я понял это server side запросы к базе vk. (Для снижения трафика делать обработку данных на сервере). Пишутся они почему то на javascript. Вот например запрос возвращающий фамилии людей разместивших на своих страничках композиции появляющиеся на первых трех строчках в поиске по запросу "Beatles":return API.users.get({"user_ids": API.audio.search({"q":"Beatles", "count":3}).items@.owner_id})@.last_name;

четверг, 1 ноября 2012 г.

Как вернуть строку из unamanaged кода C#.

Предположим есть С++'овская функция возвращающая std::string. Квест : вызвать эту функцию из С# так чтобы это все работало и не падало. Делать так:

const char* __stdcall функцияОберткаС++( ... )
{

    const std::string ret_str = функцияС++API( ... );

    char* pszReturn = NULL;

    // Это заклинание тут необходимо, обычный С++ new не работает (ошибка)
    pszReturn = (char*)::CoTaskMemAlloc( ret_str.length() + 1 );
    strcpy(pszReturn, ret_str.c_str());
    return pszReturn;
}

В C# делаем описываем интерфейс:

[DllImport("библиотека.dll", CharSet = CharSet.None)]
[return: MarshalAs(UnmanagedType.LPStr)]     
public static extern string функцияОберткаС++( ... );

Вот так вроде работает.


четверг, 9 августа 2012 г.

Макрос Q_OBJECT и объявления слотов.

Когда долго не кодишь на Qt забываешь про эти вещи. Вот только что чуть ли не час мучался с сообщением Object::connect: No such slot QDialog::registrationComplete() Object::connect:  (receiver name: 'Dialog'). И все никак не мог понять с чего это слот ищется в QDialog а не в моем унаследованном классе диалога, где он есть. А все дело в том что я забыл написать Q_OBJECT в заголовочном файле класса. И соответственно он и брал QDialog - родительский класс моего класса где макрос Q_OBJECT написан.

среда, 11 апреля 2012 г.

Генерация Java классов из XSD схем с помощью xjc и Maven.

Существуют несколько плагинов для Maven для работы с xjc. После довольно продолжительного гугления выбрал в итоге jaxb2-maven-plugin. Вроде бы все хорошо, нормальный сайт: http://java.net/projects/maven-jaxb2-plugin/pages/Home, развивается, в общем выбрал данный плагин. Оказалось что в моих xsd схемах (которые являются схемами электронной формы налоговой отчетности) в каждом файле есть корневой элемент Файл. Естественно при генерации - коллизия имен, получаются классы с одинакоы именем Файл. Выход - разнести по разным пакетам. У плагинов есть понятие execution, пришлось делать для каждого пакета по экзекьшену. Для каждого экзекьюшена в конфиге указать выходной пакет, <clearOutputDir>false</clearOutputDir> (причем в документации на оф. сайте про данный параметр не написано), да еще и некий <staleFile>, что это такое я в итоге так и не понял, написал просто разные для всех. Вот например такой .pom файл должен получиться:


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.rusnalog</groupId>
  <artifactId>rusnaloglib</artifactId>
  <version>0.0.2-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>rusnaloglib</name>
  <url>http://maven.apache.org</url>

  <dependencies>
  <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.0</version>
  <scope>test</scope>
  </dependency>
  <dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.0</version>
</dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.0.3</version>
    </dependency>
  </dependencies>


  <repositories>
<repository>
<id>java.net</id>
<name>java.net Maven Repository</name>
<url>https://maven-repository.dev.java.net/nonav/repository</url>
</repository>
  </repositories>
  <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxb2-maven-plugin</artifactId>
                <version>1.3.1</version>
                <executions>
                    <execution>
                        <id>no_trand</id>
                        <goals>
                            <goal>xjc</goal>
                        </goals>
                        <phase>
                        generate-sources
                        </phase>
                        <configuration>
                     <packageName>com.rusnaloglib.generated.NO_TRAND</packageName>
                         <schemaDirectory>${basedir}/src/main/xsd/NBO/NO_TRAND</schemaDirectory>
                         <schemaIncludes>
<schemaInclude>*.xsd</schemaInclude>
</schemaIncludes>
<staleFile>${build.directory}/generated-sources/.jaxb-staleFlag-trand</staleFile>
<clearOutputDir>false</clearOutputDir>
                </configuration>
                    </execution>
                    <execution>
                        <id>ndfl2</id>
                        <goals>
                            <goal>xjc</goal>
                        </goals>
<phase>
                        generate-sources
                        </phase>
                     
                        <configuration>
                     <packageName>com.rusnaloglib.generated.NDFL2</packageName>
                    <schemaDirectory>${basedir}/src/main/xsd/NBO/NDFL2</schemaDirectory>
                    <schemaIncludes>
<schemaInclude>*.xsd</schemaInclude>
</schemaIncludes>
<staleFile>${build.directory}/generated-sources/.jaxb-staleFlag-ndfl2</staleFile>
<clearOutputDir>false</clearOutputDir>
                </configuration>
                    </execution>
               </executions>
           </plugin>
       </plugins>
   </build>
</project>

Причем как видно пока для выбора схем указал просто *.xsd,  в дальнейшем надо будет указать файлы либо вовсе убрать эту строку, так как если нужны все файлы в директории то достаточно просто указать директорию (<schemaDirectory>).